1

我有一个联系表格,表格中的一个字段是 Contact_Type_ID。该字段是一个数字字段,也对应于另一个表中的文本字段(例如 1 = expatriate)。

当我循环浏览联系人时,他们的 Contact_Type_ID 是 1、2、3……而不是非营利组织、首席执行官、副总裁等。这是一个问题,因为人们不知道数字 3 的含义。

我想要一个只显示相应文本的组合框。

我无法让两列和 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

但是,我遇到了同样的问题:当我循环浏览联系人时,组合框不会更新。我不明白行源和控制源之间的区别。我觉得这种区别可能是关键。

4

2 回答 2

0

假设我理解正确:

在组合框属性中,转到Data选项卡。设置Control SourceContact_Type_ID

这意味着当您浏览记录时,组合框将对应于您数据中的 Contact_Type_ID 字段。

设置Row Source"SELECT Contacts.[ContactTypeID], Contact_Types.[ContactType] FROM Contacts, Contact_Types ORDER BY Contact_Types.[ContactType];"

Row Source 表示组合框可以访问的数据,这将帮助它确定如何显示控件源值。

设置Bound Column1

设置Limit to ListYes

现在在Format选项卡中。更改Column Count2。接下来将 设置column widths0;1您在问题中提到的。

现在尝试查看表单视图,它的行为应该符合您的预期。

如果它不起作用,请使用这些说明创建一个新控件。

于 2012-07-20T03:27:19.420 回答
0

据我了解您的问题,您有一个基于表格的联系人表单,Contacts并且该表格包含一个名为Contact_Type_IDor的字段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,它仍然可以工作,这一切都在正确的设置中。

于 2012-07-20T08:35:34.010 回答