如何使用 SQL 在 Microsoft Access 2013 中创建查找字段?
Posted
技术标签:
【中文标题】如何使用 SQL 在 Microsoft Access 2013 中创建查找字段?【英文标题】:How to create a Lookup field in Microsoft Access 2013 using SQL? 【发布时间】:2016-09-24 12:17:29 【问题描述】:请问如何在 Microsoft Access 2013 的表中创建查找字段(使用 SQL 中的 CREATE TABLE 语句),它在数据表视图中提供了一个下拉框允许用户在字段中选择一个或多个条目?
示例如下(用户可以从Fav_Fruit字段的下拉框中选择他/她喜欢的水果):
下拉控件的值是从另一个名为 Fruits 的表中获取的(存储在同一个 Access 数据库中),如下所示:
请指教。
谢谢。
【问题讨论】:
【参考方案1】:设拉子,
这些是您需要在 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
【讨论】:
嗨,Daniel,哦,天哪,我真的希望能够在 SQL 本身中执行此操作,而不是使用 VBA ... :( 老实说,我不知道仅使用 SQL 的方法。这更像是一种有助于数据表或表格视图的 Access 功能,而不一定是 DAO 或 ADO 功能(JET DB 引擎)。这就是为什么它通过 VBA 处理,或者当您在 Access 中处于表格设计模式时通过 VBA 在幕后处理。如果我更了解您的情况,我可能会有所帮助。根据您触发 SQL 以创建表的位置,可能还有一种调用 VBA 的方法(从 Access 内部、从外部应用程序等)。以上是关于如何使用 SQL 在 Microsoft Access 2013 中创建查找字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SQL 在 Microsoft Access 2013 中创建查找字段?
如何在 Microsoft PowerBI 中使用 SQL Server 存储过程?
如何在 Microsoft SQL Server Analysis Services 中使用 MySQL 作为数据源?
如何更改实体框架项目以使用 Microsoft SQL Server