2016-09-24 55 views
0

我可以询问如何在Microsoft Access 2013的表格中创建查找字段(在SQL中使用CREATE TABLE语句),它在数据表视图中提供了一个允许用户选择的下拉框一个或多个字段中的条目?如何使用SQL在Microsoft Access 2013中创建查阅字段?

一个例子是如下所示(其中用户可以选择水果/(S),他/她从下拉框中的Fav_Fruit场喜欢):

enter image description here

值对于下拉控制从另一表获得称为水果(存储在同一Access数据库内)如下所示:

enter image description here

请指教。

谢谢。

回答

0

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 
+0

喜丹尼尔,哦,亲爱的,我真的很希望能够到SQL本身做到这一点,而不是使用VBA .. 。:( –

+0

)我真的不知道用SQL来做这件事的方法,这更多的是Access功能,它有助于数据表或表格视图,而不一定是DAO或ADO功能(JET DB引擎)。这就是为什么它是通过VBA处理的,或者当你处于Access中的表设计模式时,通过VBA在幕后处理的时候。如果我理解了你的情况,我可能会帮助你一些。根据你发射SQL创建表的位置,有可能还有一种方法可以调用VBA(从Access中,从外部应用程序等)。 – DanielG

相关问题