2010-04-24 66 views
2

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

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

1下拉

第一个下拉(cboMarket)代表市场让用户2个选项之间进行选择:

  • 国内
  • 国际

由于第一个下拉列表只包含2个项目,我没有打扰为它做表格。我将它们添加为预定义的列表项。

第二个下拉

一旦用户在这一个选择,第二个下拉(cboLeadCategory)负载可达铅分类列表,即交易会&展览,代理,媒体广告,在线广告等。这两个市场使用不同的铅类别集合。因此这个盒子依赖于第一个。

结构绑定表,命名为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 

当我做的第一个下拉列表中选择,组合的更新后事件被称为,指示第二下拉加载内容:

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; 

第二组合的更新后的事件是:

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

这究竟是为什么?为什么不是第三个盒子根据需要加载源名称。请问任何人可以告诉我哪里出错了?

谢谢, 米^ E

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

UPDATE

我发现在查询的第三组合毛刺。它不是用的价值匹配起来第二个组合。我修正了它,现在查询站在:

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

那些讨厌的输入参数提示是GONE!但是,第三个组合仍然固执地拒绝加载任何值。有任何想法吗?

+0

我注意到,在表结构中,您将第二个表称为Lead_Category_Name TEXT,而第三个表称为具有Lead_Category NUMBER。我不明白这些不同的领域(列)如何匹配。 – Fionnuala 2010-04-24 07:10:42

+0

看到你自己回答了这个问题,但这是一个记录完备的问题。 +1 – 2010-04-24 08:25:07

+1

“那些讨厌的Enter Param提示”并不是你应该抱怨的东西。如果在没有为SQL语句明确定义参数时弹出窗口,那很好 - 这表示您犯了一个错误,并且有机会让您修复它。另外,我认为隐式引用控件是不明智的,如在Leads_Sources.Lead_Category = [cboLead_Category] ​​ - 我会将其更改为Leads_Sources.Lead_Category = Forms!MyForm![cboLead_Category](其中“MyForm”是实际名称的引用组合框存在的形式)。 – 2010-04-26 22:53:48

回答

0

没关系。找到修复程序。 BoundColumn第二个组合的属性未设置为正确的列。因此,其中的选择值不正确,第三个组合无法正确引用链接表(使用正确的索引)。

工作完成:)

感谢所有可能花时间检查问题的人。