我正在尝试使用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
答案 0 :(得分:2)
我从不使用动态参数化查询。我会使用VBA代码来设置Filter和FilterOn属性,例如:
Me.Filter = "[FName] LIKE '*" & Me.cbxFNames & "*'"
Me.FilterOn = True
如果您更喜欢动态参数化查询,则VBA将为:Me.Requery
如果代码在主窗体后面,则需要通过容器控件引用子窗体。建议为容器控件提供与其所拥有的对象不同的名称,例如ctrEmps
Me.ctrEmps.Requery
真正的诀窍是弄清楚将代码放入哪个事件。