2

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

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

第一个下拉菜单

第一个下拉列表(cboMarket)表示市场允许用户在 2 个选项之间进行选择:

  • 国内的
  • 国际的

由于第一个下拉列表仅包含 2 个项目,我没有费心为它制作表格。我将它们添加为预定义的列表项。

第二个下拉菜单

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

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

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

第三个下拉菜单

根据第二个类别的选择,第三个(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;

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

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 中选择市场类型时,第二个组合 cboLeadCategory 会顺利加载适当的类别。

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

替代文字 http://img163.imageshack.us/img163/184/enterparamprompt.png

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

替代文字 http://img52.imageshack.us/img52/8065/enterparamprompt2.png

为什么会这样?为什么第三个框没有按需要加载源名称。任何人都可以阐明我哪里出错了吗?

谢谢,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;

那些讨厌的 Enter Param 提示已经消失了!!!但是,第三个组合仍然顽固地拒绝加载任何值。有任何想法吗?

4

1 回答 1

0

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

任务完成 :)

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

于 2010-04-24T08:19:44.317 回答