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

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

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

ALTER TABLE MyTable ADD MyNewColumName BIT

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

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

person OrElse    schedule 09.03.2011    source источник
comment
Этот вопрос касается не установки типа данных поля, а установки элемента управления отображением по умолчанию (ваш заголовок вводит в заблуждение). Как говорит @Remou ниже, это не то, что можно установить с помощью DDL.   -  person David-W-Fenton    schedule 10.03.2011


Ответы (2)


Пример ДАО.

''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

person Fionnuala    schedule 09.03.2011

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

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

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

ALTER TABLE mytable ADD mynewcolumn YESNO

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

person Patrick    schedule 09.03.2011
comment
Боюсь, не получится, галочку можно поставить только с DAO. - person Fionnuala; 09.03.2011