2011-03-09 13 views
5

Jakie jest poprawne zapytanie DDL dostępu, aby dodać kolumnę typu Boolean typu danych do tabeli?ALTER TABLE: Dodaj nową kolumnę boolowską z wartością domyślną i pole wyboru

tej pory widziałem przykłady, takie jak następujące ...

ALTER TABLE MyTable ADD MyNewColumName BIT 

ale nie wydają się być w 100% poprawne ponieważ

  1. Access nie ma zastosowania kontroli pole wyboru z świeżo dodano kolumnę i
  2. dozwolone wartości dla tej kolumny wydaje się 0 i -1
+0

To pytanie nie jest o ustawienie typu danych pola, ale o ustawienie domyślne sterowanie wyświetlacza (tytuł jest mylący). Jak @Remou mówi poniżej, nie jest to coś, co można ustawić za pomocą DDL. –

Odpowiedz

5

Przykład 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 

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

5

W dostępie do typu danych Tak/Nie jest polem logicznym, które może wyświetlać tak/nie, true/false lub on/off. Kiedy patrzysz na kod VBA, prawdziwe i fałszywe stałe są równoważne -1 i 0.

Jeśli użyjesz tego pola do wypełnienia pola wyboru, będzie ono działać poprawnie.

Możesz być w stanie zmienić swoją ALTER używać „TakNie” jako takie:

ALTER TABLE mytable ADD mynewcolumn YESNO 

że pole wyboru pożądanego w kolumnie tabeli dostęp powinien dać.

+0

Nie obawiam się, że pole wyboru będzie dostępne tylko dla DAO. – Fionnuala

+0

@ PRemou Właściwie to też działa – OrElse