如何使用 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

如何在 Microsoft SQL Server 2017 上调试存储过程?

如何将 sql server 链接到 Microsoft Access?