Shiraz,
这些属性需要在VBA代码中创建。这是你的选择吗?
Function AddLookupField()
Dim db As DAO.Database
Dim fld As DAO.Field
Dim prp As DAO.Property
Dim tdf As DAO.TableDef
Set db = CurrentDb
Set tdf = db.TableDefs("MyTable")
Set fld = tdf.CreateField("Fav_Fruit", dbText)
tdf.Fields.Append fld
Set prp = fld.CreateProperty("DisplayControl", dbInteger, AcControlType.acComboBox)
fld.Properties.Append prp
Set prp = fld.CreateProperty("RowSourceType", dbText, "Value List")
fld.Properties.Append prp
Set prp = fld.CreateProperty("RowSource", dbText, "Orange; Pear; Apple")
fld.Properties.Append prp
End Function
本示例使用值列表(字符串值)。如果您希望值来自于另一个表/查询,实验与这些属性:
Set prp = fld.CreateProperty("RowSourceType", dbText, "Table/Query")
fld.Properties.Append prpProperty
Set prp = fld.CreateProperty("RowSource", dbText, "SELECT ID FROM SomeOtherTable")
fld.Properties.Append prpProperty
喜丹尼尔,哦,亲爱的,我真的很希望能够到SQL本身做到这一点,而不是使用VBA .. 。:( –
)我真的不知道用SQL来做这件事的方法,这更多的是Access功能,它有助于数据表或表格视图,而不一定是DAO或ADO功能(JET DB引擎)。这就是为什么它是通过VBA处理的,或者当你处于Access中的表设计模式时,通过VBA在幕后处理的时候。如果我理解了你的情况,我可能会帮助你一些。根据你发射SQL创建表的位置,有可能还有一种方法可以调用VBA(从Access中,从外部应用程序等)。 – DanielG