使用DoCmd.Openform设置表单记录源

时间:2018-03-22 22:58:54

标签: ms-access access-vba

我有一个可以从我的Access 2013应用程序中的多个位置访问的表单 - 取决于打开表单的位置,记录源应该是不同的 - 例如,如果打开表单来搜索记录,表单recordsource是一个参数查询,其中用户输入记录ID作为参数 - 但如果从其他地方打开表单,则recordsource是一个select查询,并且记录ID是使用VBA传递的。

我希望尽可能避免使用双表单 - 我只需要一个表单并且能够在表单打开时设置记录源...是否可以在打开表单时设置表单记录源(而不是在表单之后)表格打开了吗?

1 个答案:

答案 0 :(得分:1)

Have a bit of VBA that rewrites the query that your form reads from. Try this:

Set db = CurrentDb()
DoCmd.DeleteObject acQuery, "myFormQuery"
Set q = db.CreateQueryDef("myFormQuery")


q.Sql = "SELECT * FROM mytable WHERE 1=1;"
DoCmd.OpenForm "myForm", acNormal