1

我遇到了一个问题,我无法在 Access 中重新查询表单内的子表单。

表单的名称是 frmSearch 子表单的名称是 SearchResults

我试过了

Private Sub Command38_Click()

Me!SearchResults.Form.Requery (or)
Me.SearchResults.Form.Requery

End Sub

我的表单和子表单如下所示:

在此处输入图像描述

为了清楚起见,我使用“搜索”按钮来创建一个包含文本框和组合框值的字符串。此字符串创建一个名为 qryTrialQuery 的 SQL 查询。然后我的子表单查询 qryTrialQuery 并在下表中生成结果。

我希望能够按下搜索按钮,然后结果会立即出现在其下方。问题是,除非我关闭并重新打开表单,否则结果不会出现。

感谢您提前提供的所有帮助。


更新

以下是我用来从文本框和组合框值创建查询的代码。

LineOne = "SELECT tblPoolPersonnel.LName, tblPoolPersonnel.FName, tblPoolPersonnel.[Tel Natel], tblPoolPersonnel.[Tel Home], tblPoolPersonnel.Email" & vbCrLf
LineTwo = "FROM (tblPoolPersonnel INNER JOIN tblDayAvailable ON tblPoolPersonnel.Code_Personal = tblDayAvailable.Code_Personal) INNER JOIN tblServiceYES ON tblPoolPersonnel.Code_Personal = tblServiceYES.Code_Personal" & vbCrLf
LineThree = "WHERE (((tblServiceYES.Service)=" & comboService & ") AND ((tblDayAvailable.Availability)=True) AND ((tblDayAvailable.Date)=" & txtDate & ") AND ((tblDayAvailable.CodeHoraire1)=" & comboCodeHoraire & "));"

Set qdf = CurrentDb.QueryDefs("myQuery")
Application.RefreshDatabaseWindow
strSQL = LineOne & LineTwo & LineThree
qdf.SQL = strSQL
qdf.Close
Set qdf = Nothing
Set dbs = Nothing
4

2 回答 2

4

假设您正在根据用户选择的条件重建查询的 SQL,您应该能够执行以下操作:

Private Sub Command38_Click()
    Dim qryTrialQuery as String
    ...
    ' code to construct the SQL SELECT statement for the query, '
    ' based on the criteria the user entered                    '
    ...
    SubForm.Form.RecordSource = qryTrialQuery
End Sub

设置子表单RecordSource将刷新数据。

于 2012-11-17T06:56:15.487 回答
2

你可以试试这个:

Dim frm as Form
Set frm = frmSearch
frmSearch!SearchResults.Form.Requery 
于 2012-11-17T05:09:19.413 回答