【问题标题】:Display text corresponding to Combobox selection in Microsoft Access 2010在 Microsoft Access 2010 中显示与组合框选择对应的文本
【发布时间】:2012-07-19 06:29:03
【问题描述】:

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

当我循环浏览联系人时,他们的 Contact_Type_ID 是 1、2、3...而不是 Non-profit、CEO、Vice-president 等。这是一个问题,因为人们不知道数字 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

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

【问题讨论】:

    标签: sql ms-access combobox vba


    【解决方案1】:

    假设我理解正确:

    在组合框属性中,转到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];"

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

    Bound Column 设置为1

    Limit to List 设置为Yes

    现在在Format 标签中。将Column Count 更改为2。 接下来将column widths 设置为您在问题中提到的0;1

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

    如果不起作用,请使用these instructions. 创建一个新控件

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 好吧,我终于让它工作了。我需要更多地了解笛卡尔积。谢谢!
      猜你喜欢
      • 2016-10-24
      • 1970-01-01
      • 2017-05-26
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多