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

Ms access 在Access 2007的多个级联下拉框中填充数据,ms-access,forms,drop-down-menu,cascade,populate,Ms Access,Forms,Drop Down Menu,Cascade,Populate,我的任务是在MS Access 2007中设计一个临时客户跟踪系统(sheeeesh!)。表和关系都已成功设置。但是我在为一个表设计数据输入表单时遇到了一个小问题。。。首先有一点解释 屏幕包含3个下拉框(除其他字段外) 第一个下拉列表 第一个下拉列表(cboMarket)代表市场允许用户在两个选项中进行选择: 国内的 国际的 因为第一个下拉列表只包含2个项目,所以我没有为它制作表格。我将它们添加为预定义的列表项 第二个下拉列表 一旦用户在其中做出选择,第二个下拉列表(CBOLEADCOREG

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

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

第一个下拉列表

第一个下拉列表(cboMarket)代表市场允许用户在两个选项中进行选择:

  • 国内的
  • 国际的
因为第一个下拉列表只包含2个项目,所以我没有为它制作表格。我将它们添加为预定义的列表项

第二个下拉列表

一旦用户在其中做出选择,第二个下拉列表(CBOLEADCOREGORY)将加载潜在客户类别列表,即展会、代理、新闻广告、在线广告等。这两个市场使用不同的潜在客户类别。因此,此框依赖于第一个框

第二个组合的绑定表名为Lead_Categries,其结构为:

ID Autonumber
Lead_Type TEXT <- actually a list that takes up Domestic or International
Lead_Category_Name TEXT
Private Sub cboLeadCategory_AfterUpdate()
    Me![cboLeadSource].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事件是:

ID Autonumber
Lead_Type TEXT <- actually a list that takes up Domestic or International
Lead_Category_Name TEXT
Private Sub cboLeadCategory_AfterUpdate()
    Me![cboLeadSource].Requery
End Sub
第三个组合的行源包含:

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中选择Market type时,第二个组合cboLeadCategory会毫不费力地加载相应的类别

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

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

为什么会这样?为什么第三个框没有按需要加载源名称。谁能告诉我哪里出了问题吗

谢谢, m^e

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

更新

我在查询第三个组合时发现了一个小问题。。它与第二个组合的值不匹配。我修复了它,现在查询位于:

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

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

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

工作完成:)


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

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

工作完成:)


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

我注意到在表结构中,您将第二个表称为Lead_Category_Name文本,而第三个表称为Lead_Category NUMBER。我不知道这些不同的字段(列)如何匹配。我知道你自己回答了这个问题,但这是一个有充分证明的问题+1“那些讨厌的输入参数提示”不是你应该抱怨的。如果它们是在您没有显式定义SQL语句的参数时出现的,这很好——这表明您犯了错误,这是一个修复错误的机会。此外,我认为隐式引用控件是不可取的,就像在Lead\u源中一样。Lead\u Category=[cboLead\u Category]--我将其更改为Leads\u源。Lead\u Category=Forms!我的表格![cboLead_Category](其中“MyForm”是存在引用组合框的表单的实际名称)。David。。。谢谢你的提示。我注意到在表结构中,您将第二个表称为Lead\u Category\u Name文本,而第三个表称为Lead\u Category NUMBER。我不知道这些不同的字段(列)如何匹配。我知道你自己回答了这个问题,但这是一个有充分证明的问题+1“那些讨厌的输入参数提示”不是你应该抱怨的。如果它们是在您没有显式定义SQL语句的参数时出现的,这很好——这表明您犯了错误,这是一个修复错误的机会。此外,我认为隐式引用控件是不可取的,就像在Lead\u源中一样。Lead\u Category=[cboLead\u Category]--我将其更改为Leads\u源。Lead\u Category=Forms!我的表格![cboLead_Category](其中“MyForm”是存在引用组合框的表单的实际名称)。David。。。谢谢你的提示。隐式引用它们确实更有意义。