我有一个包含2个不同级联组合框设置的表单。每个都有一个框,在选择后重新查询第二个组合框。第二个组合具有仅显示与第一个框中选择的选择对应的值的标准。
AfterUpdate()
事件是宏:
Requery
Control Name: StageID
示例:ProjectType是框1,可选择Capital或Development。然后,选择会影响舞台组合框中的下拉菜单。它们生成的表结构是3个字段:" StageID"," StageName"和" ProjectType"因此所有3个字段都在Stage组合框中,只显示了舞台名称和" ProjectType"使用条件链接:[Forms]![Project Update]![ProjectType]
SQL如下
ProjectType - 值列表
阶段 -
SELECT Stage.StageID, Stage.StageName
FROM Stage
WHERE (((Stage.ProjectType)=[Forms]![Project Update]![ProjectType]));
业务 -
SELECT Business.BusinessID, Business.Business
FROM Business;
问题陈述 -
SELECT ProblemStatements.ProblemStatementID, ProblemStatements.ProblemStatement
FROM ProblemStatements
WHERE (((ProblemStatements.BusinessID)=[Forms]![Project Update]![Combo493]));
Stage和ProblemStatemenet字段的控件源来自名为ProjectList的表,该表具有过滤表单的字段ProjectID以及ProblemStatementID和StageID字段。但是,业务和ProjectType字段具有来自" ProblemStatement"的控制源。桌子和"舞台"分别表。
组合框更新正常,但在重新获得/项目类型更改后,我无法选择新的舞台。如果我将其更改回原始项目类型,则会自动选择原始阶段,但我无法选择其他阶段。此外,我可以在选择项目类型之前(第一次重新查询之前)更改阶段。
我在Business / ProblemStatement组合中遇到完全相同的问题,唯一的区别是表结构。
Table 1: Business, fields: BusinessID and Business
Table 2: ProblemStatements, fields: ProblemStatementID, BusinessID, ProblemStatement
生成表单的查询的SQL如下:
SELECT ProblemStatements.BusinessID, Business.Business,
ProjectList.StageID, Stage.ProjectType, ProjectList.ProjectID,
ProjectList.ProjectTitle, ProjectList.SiteID, ProjectList.CodeName,
ProjectList.Type, ProjectList.RegionalGlobal, ProjectList.Category,
ProjectList.Status, ProjectList.StartDate, ProjectList.Sensitivity,
ProjectList.ProblemStatementID, ProblemStatements.ProblemStatement,
ProjectList.Attachment, ProjectList.Keywords, ProjectList.Tracking
FROM (Stage RIGHT JOIN (Site RIGHT JOIN (ProblemStatements RIGHT JOIN
ProjectList ON ProblemStatements.ProblemStatementID =
ProjectList.ProblemStatementID) ON Site.SiteID = ProjectList.SiteID) ON
Stage.StageID = ProjectList.StageID) LEFT JOIN Business ON
ProblemStatements.BusinessID = Business.BusinessID;
我在严格用于新数据输入的表单上使用相同的方法,它工作正常。不工作的表单用于更新现有记录。