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 に答える