使用Access VBA更改表单的记录源

时间:2014-04-08 15:03:23

标签: vba ms-access access-vba subform

我正在创建搜索表单,但我无法在子表单中看到搜索结果。 查询运行正常,我已将子表单记录源设置为查询。我没有收到任何错误。当我单击搜索按钮时,查询运行并显示子窗体底部的记录选择器中的行数,但我看不到行。

以下是按钮的OnClick事件的代码:

Private Sub cmdSearch_Click()

Dim tableName As String
Dim colName As String
Dim keyword As String
Dim strSQL As String

tableName = Me.cmbTableNames.Value
colName = Me.cmbColumnNames.Value
keyword = Me.txtKeyword.Value
strSQL = "Select * from [" & [tableName] & "] where [" & [colName] & "] like '*" &  [keyword] & "*';"
Debug.Print strSQL
Me.searchResultsForm.Visible = True

Forms![F_SearchForm]![searchResultsForm].Form.RecordSource = "Select * from [" &   [tableName] & "] where [" & [colName] & "] like '*" & [keyword] & "*';"
Forms![F_SearchForm]![searchResultsForm].Form.Requery
End Sub

有人能告诉我我做错了什么。

谢谢

这是Debug.Print的立即窗口中显示的内容

Select * from [dbo_Internal Contacts] where [First Name] like '*Amy*';

我的表单在表单视图中如下所示:

enter image description here

我在子表单中添加了一些文本框(大约35个)。现在,如果我运行查询,我的表单如下所示: enter image description here

如何使用vba将子窗体上的这些文本框链接到记录源中的列?

请帮忙

1 个答案:

答案 0 :(得分:1)

我明白了。这就是我做的事情

我将查询修改为

Select * into tmpSearchResults from [" & [tableName] & "] where [" & [colName] & "] like '*" & [keyword] & "*';

我将tmpSearchResults作为记录源提供给我的子表单。

每次更新表名组合框时,我都会删除tmpSearchResults表。

它就像我想要的那样工作。