2017-06-16 16 views
0

ナビゲーションサブフォームに複数選択リストボックスを使用してクエリを作成し、同じフォームのサブレポートに表示する条件を定義するサブレポートがあります。私はこのクエリーを使用していますナビゲーションサブフォームのSubReportがクエリの変更と再クエリ後に再ロードされない

Forms![Main]![NavigationSubform].Form![ETIC By Customer Report].Report.Requery この方法でレポートを変更しても問題はありませんが、イベントコードで使用するとレポートビューが更新されません。レポートを個別に開くと、すべてが問題なく適切に機能します。 MSDNから、

'update the query (sql) first. 
qdf.SQL = strSQL 
'then requery the form. 
Forms![Main]![NavigationSubform].Form![ETIC By Customer Report].Report.Requery 

また

Forms![Main]![NavigationSubform].Form![ETIC By Customer Report].Report.Requery 
qdf.SQL = strSQL 

へ:

Private Sub Command83_Click() 
Dim db As DAO.Database 
Dim qdf As DAO.QueryDef 
Dim varItem As Variant 
Dim strCriteria As String 
Dim strSQL As String 
Dim unitstr As TempVar 
Set db = CurrentDb() 
Set qdf = db.QueryDefs("ETIC by Customer") 
For Each i In [Forms]![Main]![NavigationSubform].[Form]! [Combo11].ItemsSelected 
    strCriteria = strCriteria & "," & Chr(34) & [Forms]![Main]![NavigationSubform].[Form]![Combo11].ItemData(i) & Chr(34) 
    Next i strCriteria = Mid(strCriteria, 2) 
If Len(strCriteria) = 0 Then 
MsgBox "You did not select anything." _ 
, vbExclamation, "Nothing to find!" 
Exit Sub 
End If 
TempVars!unitstr = strCriteria 
strSQL = "SELECT DISTINCTROW DPASDataWorkTable.[Work Order Id], DPASDataWorkTable.[Asset Id], DPASDataWorkTable.[Approval Dt], DPASDataWorkTable.[Item Desc], DPASDataWorkTable.[Work Order Status Cd], DPASDataWorkTable.[Closed Dt], DPASDataWorkTable.ETIC, DPASDataWorkTable.Remarks, DPASDataWorkTable.[Parts Bin Location], DPASDataWorkTable.[Completed Deferred], DPASDataWorkTable.[Floor Technician], LIMSData.[MGMT CD], DPASDataWorkTable.[Date Opened (By W/O)], DPASDataWorkTable.[Remarks For FMA], DPASDataWorkTable.Priority, LIMSData.[MASTER MGT CODE], LIMSData.User, LIMSData.[PRG CAT], LIMSData.UNIT, LIMSData.[VEH MAKE TYPE], LIMSData.Org, LIMSData.Status, LIMSData.Shop, LIMSData.[Physical Location], LIMSData.Driveable, [Concatinated Tasks].[Line Items]," & _ 
"[Concatinated Tasks].[Shop Code], DPASDataWorkTable.[Current Shop], LIMSData.[Physical Location], [MEL Table].[MEL Key], DPASDataWorkTable.[Remaining Hours] AS [Total Remaining], DPASDataWorkTable.[Est Hours] AS [Total Estimated],LIMSData.UNIT As [UNIT]" & _ 
"FROM [MEL Table] INNER JOIN (LIMSData INNER JOIN ((DPASDataWorkTable INNER JOIN [Concatinated Tasks] ON DPASDataWorkTable.[Work Order Id] = [Concatinated Tasks].[Work Order ID]) INNER JOIN DPASDataSubTable ON DPASDataWorkTable.[Work Order Id] = DPASDataSubTable.[Work Order Id]) ON LIMSData.[Local Key] = DPASDataWorkTable.[Local Asset Key]) ON [MEL Table].[MEL Key] = LIMSData.[MEL Key] " & _ 
"WHERE LIMSData.Unit IN (" & strCriteria & ") and DPASDataWorkTable.[Work Order Status Cd]=""O-Open"";" 

Forms![Main]![NavigationSubform].Form![ETIC By Customer Report].Report.Requery 
qdf.SQL = strSQL 
Set db = Nothing 
Set qdf = Nothing 
End Sub 

答えて

1

私はあなたがこれらの2行を切り替える必要があると思う「あなたはTempVarオブジェクトを削除しない場合は、それが残りますTempVarオブジェクト変数の使用が終了したら削除することをお勧めします。リンク:TempVars

関連する問題