2012-07-20 85 views
1

我有一个联系表单,并且表单中的一个字段是Contact_Type_ID。这个字段是一个数字字段,它也对应于另一个表中的文本字段(例如1 =外移)。在Microsoft Access 2010中显示对应于组合框选择的文本

当我在联系人中循环时,他们的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 

不过,我再有同样的问题:组合框不会更新通过接触我的周期。我不明白rowsource和controlsource之间的区别。我觉得这个区别可能是关键。

回答

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 Column1

设置Limit to ListYes

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

现在尝试查看表单视图,它应该按照您的预期行事。

如果它不工作,创建these instructions.

0

新的控制作为我明白你的问题,你有基于表Contacts触点的形式和该表中含有一种叫要么Contact_Type_IDContactTypeID场。您希望从表Contact_Types中显示联系人类型的说明。

你不需要为你的组合连接表,它应该是非常简单的。正如你怀疑的那样,关键是Control source,这是将一个表与另一个表相关联的属性。另外,你可以在一个组合中连接表,并且仍然将第一列设置为0,并且它仍然可以工作,它们都在正确的设置中。

+0

好的,我最终得到了它的工作。我需要更多地了解笛卡尔产品。谢谢! – 2012-07-31 03:53:46

相关问题