我有一个表单,该表单将参数提交到查询,然后以另一种表单打开生成的记录。问题是,每当有多个记录时,它会自动将第一个记录放入 from,而无需任何选项来选择我想要的记录。我在第一个窗体上的搜索按钮上设置了一个宏,该宏将参数提交到查询,然后在第二个窗体中显示它,我尝试在两者之间设置另一个宏,但我不知道是否可以设置表达式创建者来检查查询产生的行数。是否可以修改查询以创建提示以选择所需的记录?还是我应该改变别的东西?
这是查询:(由访问自动创建)
SELECT CHILD.CHILD_L_NAME, CHILD.CHILD_F_NAME, CHILD.DOB, CHILD.GENDER, CHILD.DAYS_IN_CARE,
CHILD.HOURS_PER_DAY, CHILD.ENROLLMENT_DATE, CHILD.CHILD_ADDRESS, CHILD.CHILD_CITY,
CHILD.CHILD_ZIP, CHILD.CHILD_STATE, CHILD.CLASSROOM, CHILD.SNACK, CHILD.LAST_UPDATED, CHILD.CIN
FROM CHILD
WHERE (((CHILD.CHILD_L_NAME)=[Forms]![Search]![L_NAME]) AND
((CHILD.CHILD_F_NAME)=[Forms]![Search]![F_NAME])) OR
(((CHILD.CHILD_L_NAME)=[Forms]![Search]![L_NAME]) AND
((CHILD.DOB)=[Forms]![Search]![DOB])) OR
(((CHILD.DOB)=[Forms]![Search]![DOB])) OR
(((CHILD.CHILD_L_NAME)=[Forms]![Search]![L_NAME]));
如果我很好地理解您的问题并且您使用 VBA,那么这很容易做到。
您可以根据使用该按钮创建的查询创建简化的查询。此新查询应包含所有且仅包含允许您区分要在第二种形式中显示的记录的字段。
例如,它可以包括姓氏,名字和教室,以便在具有相同全名的孩子之间进行选择。
您可以计算此第二个查询的记录数,如果大于 1,则表示您要显示多个子项。
因此,您可以使用第二个查询来填充组合框或列表框,以选择您真正要显示的记录。
当记录数为 1 时,您可以使用 if 语句简单地跳过列表框填充记录计数。
下一步是打开包含所选(或唯一)记录的窗体。
再见