我可以使用文本框引用来选择 MS Access 中的特定记录吗

Posted

技术标签:

【中文标题】我可以使用文本框引用来选择 MS Access 中的特定记录吗【英文标题】:Can I use a textbox reference to select specfic records in MS Access 【发布时间】: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 语句,并且现在正在使用这个简单的查询,以解决问题。

【问题讨论】:

【参考方案1】:

尝试使用正常语法:

WHERE EmployeeInformation.Employee = Forms!FORMNAME!TEXTBOX

【讨论】:

那行得通,我可以发誓我已经尝试过了,但我想没有。

以上是关于我可以使用文本框引用来选择 MS Access 中的特定记录吗的主要内容,如果未能解决你的问题,请参考以下文章

MS Access:从 ComboBox 中选择一个选项,它会自动更新其他文本框

MS ACCESS:从参数查询更新文本框

MS Access 2010 上的可编辑文本框 - 行为正确吗?

MS Access,根据文本框条目填充组合框

当用户从 MS Access 的组合框中选择“其他”时,如何显示输入表单?

根据组合框选择切换表单上其他字段的可见性 - MS Access