【发布时间】:2021-05-04 13:57:39
【问题描述】:
我有一个联合查询:这是其中的一部分:
SELECT CompletedTrainingsNew.Employee, CompletedTrainingsNew.AbuseNeglect AS Compdate, AbuseNeglect+(SELECT Expdays
FROM Trainings
WHERE Trainings.[Training Name] = "Abuse & Neglect"
) AS Expired, EmployeeInformation.[Last Name], EmployeeInformation.Employee, "Abuse & Neglect" AS Training
FROM EmployeeInformation INNER JOIN CompletedTrainingsNew ON EmployeeInformation.ID = CompletedTrainingsNew.Employee;
这个查询的其余部分只是不同字段上的一堆联合,但都遵循相同的格式,选择一个字段给它一个别名,Compdate,计算它的到期日期并给它一个别名,创建一个显示字段原始字段的名称,将其命名为“Training”。
我需要做的是通过表单上的组合框或绑定到该组合框的文本框进行查询过滤。
我想我可以在最后添加一个 WHERE 子句:
WHERE EmployeeInformation.Employee = "Forms!FORMNAME!TEXTBOX(Combobox)NAME.Value"
我也试过这个没有“”或.Value...没有“”它不明白我要求它做什么,输入参数)
现在查询运行,并正确返回整个记录列表,因此没有问题。 但是当我尝试让它只选择与输入框匹配的记录时,在本例中为员工姓名,它返回空白。员工姓名框,目前是附加到表单的文本框,是使用 .Column(n) 属性从同一表单上的组合框填充的。
= EmployeeLookup.Column(3)
这是一个文本列,当表单打开时,它会用正确的信息填充文本框
例如“John Doe”
那么有没有办法在 SQL 中做到这一点,还是必须通过 VBA 完成?还是我只是将声明放在错误的位置?
编辑添加,我附上了这个查询的第一部分,因为我试图让它工作,我已经删除了所有的 UNION 语句,并且现在正在使用这个简单的查询,以解决问题。
【问题讨论】: