在Access 2007中的多个级联下拉框中填充数据

时间:2010-04-24 05:28:23

标签: ms-access forms drop-down-menu cascade populate

我被分配了在MS Access 2007中设计临时客户跟踪系统的任务(sheeeesh!)。表和关系都已成功设置。但是我在尝试为一个表设计数据输入表时遇到了一个小问题......首先是一些解释。

屏幕包含3个下拉框(除了其他字段)。

第一次下拉

第一个下拉列表(cboMarket)代表市场,让用户可以选择2个选项:

  • 国内
  • 国际

由于第一个下拉列表只包含2个项目,所以我不打算为它制作一个表格。我将它们添加为预定义的列表项。

第二次下拉

一旦用户在此选择中进行选择,第二个下拉列表(cboLeadCategory)将加载一个Lead类别列表,即Fairs&展览,代理商,新闻广告,在线广告等。两个市场使用不同的潜在客户类别。因此,此框取决于第一个。

第二个组合名为 Lead_Cateogries 的绑定表的结构为:

ID Autonumber
Lead_Type TEXT <- actually a list that takes up Domestic or International
Lead_Category_Name TEXT

第3次下拉

根据第二个类别中的类别选择,第三个(cboLeadSource)应该显示属于特定类别的预定义的一系列潜在客户来源。

表名为 Lead_Sources ,结构为:

ID Autonumber
Lead_Category NUMBER <- related to ID of Lead Categories table
Lead_Source TEXT

当我在第一个下拉列表中进行选择时,会调用组合的 AfterUpdate 事件,该事件指示第二个下拉列表加载内容:

Private Sub cboMarket_AfterUpdate()
    Me![cboLead_Category].Requery
End Sub

第二个组合的行来源包含一个查询:

SELECT Lead_Categories.ID, Lead_Categories.Lead_Category_Name
FROM Lead_Categories
WHERE Lead_Categories.Lead_Type=[cboMarket]
ORDER BY Lead_Categories.Lead_Category_Name;

第二个组合的AfterUpdate事件是:

Private Sub cboLeadCategory_AfterUpdate()
    Me![cboLeadSource].Requery
End Sub

第3个组合的行来源包含:

SELECT Leads_Sources.ID, Leads_Sources.Lead_Source
FROM Leads_Sources
WHERE [Lead_Sources].[Lead_Category]=[Lead_Categories].[ID]
ORDER BY Leads_Sources.Lead_Source;

问题

当我从cboMarket中选择市场类型时,第二个组合cboLeadCategory会毫不费力地加载相应的类别。

但是当我从中选择一个特定的类别时,而不是第三个组合加载主要来源名称,会显示一个模态对话框,要求我输入参数

alt text http://img163.imageshack.us/img163/184/enterparamprompt.png

当我在此提示中输入任何内容(有效或无效的数据)时,我会收到另一个提示:

alt text http://img52.imageshack.us/img52/8065/enterparamprompt2.png

为什么会这样?为什么第3个框不能根据需要加载源名称。请问任何人可以解释一下我出错的地方吗?

谢谢, 米^ E

=============================================== ====

更新

我在第3个组合的查询中发现了一个小故障。它与第二个组合的值不匹配。我修复了它,现在查询位于:

SELECT Leads_Sources.ID, Leads_Sources.Lead_Source
FROM Leads_Sources
WHERE (((Leads_Sources.Lead_Category)=[cboLead_Category]))
ORDER BY Leads_Sources.Lead_Source;

那些讨厌的Enter Param提示是GONE!然而,第三组合仍然固执地拒绝加载任何值。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

没关系。找到了解决方案。第二个组合的 BoundColumn 属性未设置为正确的列。因此,其中的选择值不正确,并且第3个组合无法正确引用链接表(使用正确的索引)。

完成工作:)

感谢所有可能抽出时间审查问题的人。