场景:我正在为访问数据库创建高级搜索表单。他们已经有单一的搜索表单来运行访问查询并在查询窗口中打开。
问题:我想模仿此功能,但我希望在代码中将查询创建为字符串,然后在查询窗口中打开它。这可能吗?我搜索谷歌但没有找到任何东西。如果不可能有任何替代方案吗?
提前致谢。
答案 0 :(得分:2)
您可以在数据表视图中打开一个看起来像查询窗口的表单,但是您需要创建一个表单,将控件添加到它,然后设置记录源
e.g。
Dim rst As DAO.Recordset
Dim rsField As DAO.Field
Dim control As Access.TextBox
Dim frm As Form
Set frm = CreateForm()
frm.Visible = False
Dim sql As String
sql = "Select * from MSysObjects"
Set rst = CurrentDb.OpenRecordset(sql)
For Each rsField In rst.Fields
Debug.Print rsField.Name
Set control = CreateControl(frm.Name, acTextBox, acDetail)
With control
.Width = 100
.Height = 100
.Top = 100
.Left = 100
.ControlSource = rsField.Name
.Name = rsField.Name
End With
Next rsField
Set rst = Nothing
frm.Visible = True
frm.RecordSource = sql
DoCmd.OpenForm frm.Name, acFormDS
这有几个问题。
老实说,修改querydef可能是更为理智的方式。