在子表单中显示结果仅适用于第一个查询

时间:2017-12-04 21:30:25

标签: vba ms-access

我正在尝试使用MS Access中的链接表为Mysql数据库应用程序构建前端。目前,我在表单上有一个按钮,该按钮执行允许用户按人名搜索记录的查询。在表单上,​​有一个子表单显示执行查询的结果。

我的问题是,每当我打开表单时,子表单只会在第一次执行查询时显示查询结果。如果我尝试搜索其他名称,它将在单独的工作表中打开结果集,而不是更新我的子表单。

如何在每次搜索时更新子表单?

免责声明:我是Access新手,不知道任何VBA代码。

查询:

SELECT employees.FNAME, employees.LNAME, access.NAME, access.USERNAME, access.CREATED_BY, access.ACCESS_GRANTED, access.ACCESS_TERMINATED, access.ADMIN
FROM employees INNER JOIN access ON EMPLOYEES.ID = ACCESS.ID
WHERE (((employees.FNAME) Like "*" & Forms![Form1]!FNameTxt & "*"));

Picture of my form after query with name "chase" is executed

1 个答案:

答案 0 :(得分:2)

我从不使用动态参数化查询。我会使用VBA代码来设置Filter和FilterOn属性,例如:

Me.Filter = "[FName] LIKE '*" & Me.cbxFNames & "*'" Me.FilterOn = True

如果您更喜欢动态参数化查询,则VBA将为:Me.Requery

如果代码在主窗体后面,则需要通过容器控件引用子窗体。建议为容器控件提供与其所拥有的对象不同的名称,例如ctrEmps

Me.ctrEmps.Requery

真正的诀窍是弄清楚将代码放入哪个事件。