我有一个联系表单,表单中的一个字段是Contact_Type_ID。该字段是一个数字字段,也对应于另一个表中的文本字段(例如1 =外籍人员)。
当我在联系人中循环时,他们的Contact_Type_ID是1,2,3 ......而不是非营利性的CEO,副总裁等。这是一个问题,因为我不知道3号的含义。< / p>
我想要一个仅显示相应文本的组合框。
我无法获得两列和0; 1格式。我的预感是因为我从两个不同的表中提取信息。我可以生成正确的列表,但是当我循环浏览联系人以反映当前联系人的[Contact_Type_ID]时,主条目不会改变。
我无法编辑任何当前表,因为我应该将此应用程序应用于更大规模的数据库。
我也尝试为行源设置SQL:
'Populate the connection combo box '
Dim typeSQL As String
typeSQL = "SELECT DISTINCT Contacts.[ContactTypeID], Contact_Types.[ContactType] " & _
"FROM Contacts, Contact_Types " & _
"ORDER BY Contact_Types.[ContactType];"
Me.cbo_ContactType.RowSource = typeSQL
但是,我遇到了同样的问题:当我循环浏览联系人时,组合框不会更新。我不明白rowsource和controlsource之间的区别。我觉得这种区别可能是关键所在。
答案 0 :(得分:0)
假设我理解正确:
在组合框属性中,转到Data
标签。
将Control Source
设置为Contact_Type_ID
。
这意味着当您浏览记录时,组合框将对应于数据中的Contact_Type_ID字段。
将Row Source
设置为"SELECT Contacts.[ContactTypeID], Contact_Types.[ContactType] FROM Contacts, Contact_Types ORDER BY Contact_Types.[ContactType];"
行源指示组合框可以访问的数据,这将有助于它确定如何显示控制源值。
将Bound Column
设置为1
将Limit to List
设为Yes
现在位于Format
标签中。将Column Count
更改为2
。
接下来将column widths
设置为您在问题中提到的0;1
。
现在尝试查看表单视图,它应该按预期运行。
如果不起作用,请使用these instructions.
创建一个新控件答案 1 :(得分:0)
据我了解您的问题,您的表单中包含基于表Contacts
的联系人,该表包含一个名为Contact_Type_ID
或ContactTypeID
的字段。您希望在表格Contact_Types
中显示联系人类型的说明。
您不需要为您的组合连接表,它应该非常简单。正如您所怀疑的那样,密钥是Control source
,它是将一个表与另一个表相关联的属性。
Control source : ContactTypeID '' or Contact_Type_ID, choose from the list
Row source : SELECT ContactTypeID, ContactType FROM Contact_Types ORDER BY ContactType
Bound column : 1
Column count : 2
Column widths : 0,2
顺便说一下,你可以在一个组合中连接表,并且仍然将第一列设置为0,它仍然可以工作,它都在正确的设置中。