ALTER TABLE: добавить новый логический столбец со значением по умолчанию и флажок - PullRequest
5 голосов
/ 09 марта 2011

Что такое правильный запрос DDL Access для добавления столбца логического типа данных в таблицу?

До сих пор я видел примеры, подобные следующим ...

ALTER TABLE MyTable ADD MyNewColumName BIT

но они не кажутся правильными на 100% с

  1. Access не применяет элемент управления флажка к вновь добавленному столбцу, а
  2. допустимые значения для этого столбца: 0 и -1

Ответы [ 2 ]

5 голосов
/ 09 марта 2011

Пример DAO.

''Requires reference to Microsoft DAO 3.6 Object Library
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim db As Database
Dim strSQL As String


Set db = CurrentDb

''Create a table ...
strSQL = "Create Table tblLTD (TheYesNoCheck YesNo, TheYesNoCombo YesNo)"
db.Execute strSQL

''It is now in the table collection, so ...
Set tdf = db.TableDefs("tblLTD")

''Change the way the YesNo fields display.
''A Checkbox
Set fld = tdf.Fields("TheYesNoCheck")
Set prp = fld.CreateProperty("DisplayControl", dbInteger, acCheckBox)
fld.Properties.Append prp

''A combobox
Set fld = tdf.Fields("TheYesNoCombo")
Set prp = fld.CreateProperty("DisplayControl", dbInteger, acComboBox)
fld.Properties.Append prp
''We will need a format
Set prp = fld.CreateProperty("Format", dbText, "Yes/No")
fld.Properties.Append prp

От: http://wiki.lessthandot.com/index.php/Add_a_Display_Control_(Checkbox,_Combobox)_to_a_YesNo_Field

5 голосов
/ 09 марта 2011

В доступе тип данных Да / Нет - это логическое поле, которое может отображать да / нет, истина / ложь или вкл / выкл. Когда вы смотрите на код VBA, истинные и ложные константы эквивалентны -1 и 0.

Если вы используете это поле для заполнения флажка, оно будет работать правильно.

Вы можете изменить свой оператор alter, чтобы использовать «YESNO» следующим образом:

ALTER TABLE mytable ADD mynewcolumn YESNO

Это должно дать вам нужный флажок в столбце таблицы доступа.

...