我有一个搜索表单。该表单包含字段名称下拉列表和一个文本框,可以在其中键入搜索关键字。对于每个搜索字段/值,都有一个布尔下拉列表(和,或,不是)。当用户点击搜索按钮时,选择会生成一个查询字符串,然后运行:
Set qdf = CurrentDb.QueryDefs("temp_query")
qdf.SQL = SQL_query_string
DoCmd.Close acQuery, "temp_query"
DoCmd.OpenQuery "temp_query", acViewNormal, acReadOnly
SQL_query string
基于字段/值组合生成。
上面的代码会创建一个运行temp_query
的新查询SQL_query string
。我想在表单中将查询结果显示为数据表(表格),而不是打开新的查询窗格。我认为子表单可能是答案,但似乎并不是数据表格式。我该怎么做呢?
这似乎是最好的选择,但我喜欢看起来/行为更像实际数据表的东西。
答案 0 :(得分:0)
啊哈!正确的语法是:
Me.DatasheetView.Form.RecordSource = "temp_query"
我得到了!来自网上的某个地方,但很明显,圆点是正确的方式。
这是我做的:
我已经有了主搜索表单(见上图)。我创建了一个名为DatasheetView的新表单。然后我在主搜索表单中添加了一个子表单,我将其链接(使用出现的向导)到新的DatasheetView表单。然后,当用户单击“搜索”按钮时,VBA回调会根据搜索表单输入将查询字符串组合在一起。拼凑查询字符串(SQL_query_string)后,我有:
CurrentDb.QueryDefs("temp_query").SQL = SQL_query_string
Me.DatasheetView.Form.RecordSource = "temp_query"
我原本以为我需要使用生成的SQL显式更新了TablesView查询,但似乎只是通过设置SQL来实现。
基本上,数据表视图表格作为虚拟表格,除了通过子表单外,从不查看。