2016-05-13 7 views
0

最終的に、クロス集計レポートが動的に更新されましたが、何らかの理由で日付パラメータがレポートまたはクエリに渡されませんでした。クロス集計クエリデータパラメータにフィルタリングクエリが使用されていません

クロス集計レポートを更新するレコードセットがあります。また、vbaの日付パラメータをホバーすると、正しい日付が表示されますが、レポートにはまだすべてのデータが表示されています。

クエリには、すべての日付のデータも表示されます。それは私が質問で間違っていたことですか?私はすべてのフォーラムのように思えるだけで解決策を見つけることができない、あらゆるオプションを試してみました。

これは、クエリ

PARAMETERS [Forms]![frm_menu]![txtFromDate] DateTime, 
      [Forms]![frm_menu]![txtToDate] DateTime, 
      [Forms]![frm_menu]![cmbMplTag1] Text (255), 
      [Forms]![frm_menu]![cmbMplTag2] Text (255), 
      [Forms]![frm_menu]![cmbMplTag3] Text (255), 
      [Forms]![frm_menu]![cmbMplTag4] Text (255), 
      [Forms]![frm_menu]![cmbMplTag5] Text (255); 
TRANSFORM First(tbl_logdata.Input_Value) AS FirstOfInput_Value 
SELECT tbl_logdata.Log_Date, tbl_logdata.Log_Time 
FROM tbl_logdata 
WHERE (((tbl_logdata.Log_Date) Between [Forms]![frm_menu]![txtFromDate] 
            And [Forms]![frm_menu]![txtToDate]) 
    AND ((tbl_logdata.tag)=[Forms]![frm_menu]![cmbMplTag1])) 
    OR (((tbl_logdata.tag)=[Forms]![frm_menu]![cmbMplTag2])) 
    OR (((tbl_logdata.tag)=[Forms]![frm_menu]![cmbMplTag3])) 
    OR (((tbl_logdata.tag)=[Forms]![frm_menu]![cmbMplTag4])) 
    OR (((tbl_logdata.tag)=[Forms]![frm_menu]![cmbMplTag5])) 
GROUP BY tbl_logdata.Log_Date, tbl_logdata.Log_Time 
PIVOT tbl_logdata.tag; 

ためのSQLであり、これは、クロス集計レポートのVBAです。 cmbMplTag番号のパラメータが正常に動作している:

Private Sub Report_Open(Cancel As Integer) 
Dim rst As dao.Recordset 
Dim db As dao.Database 
Dim qdf As dao.QueryDef 
Dim i As Integer 
Dim j As Integer 
Set db = CurrentDb 
Set qdf = db.QueryDefs("qry_MplTagsSummary") 

'on hover shows date from textbox' 
qdf.Parameters("Forms!frm_menu!txtFromDate") = [Forms]![frm_menu]![txtFromDate] 
'on hover shows date from textbox' 
qdf.Parameters("Forms!frm_menu!txtToDate") = [Forms]![frm_menu]![txtToDate] 
qdf.Parameters("[Forms]![frm_menu]![cmbMplTag1]") = [Forms]![frm_menu]![cmbMplTag1] 
qdf.Parameters("[Forms]![frm_menu]![cmbMplTag2]") = [Forms]![frm_menu]![cmbMplTag2] 
qdf.Parameters("[Forms]![frm_menu]![cmbMplTag3]") = [Forms]![frm_menu]![cmbMplTag3] 
qdf.Parameters("[Forms]![frm_menu]![cmbMplTag4]") = [Forms]![frm_menu]![cmbMplTag4] 
qdf.Parameters("[Forms]![frm_menu]![cmbMplTag5]") = [Forms]![frm_menu]![cmbMplTag5] 

Set rst = qdf.OpenRecordset() 
rst.MoveFirst 
j = -1 
i = 0 
For i = 0 To rst.Fields.Count - 1 

    j = j + 1 
    Select Case j 

     Case 0 
      Me.Log_Date.ControlSource = rst.Fields(i).Name 
     Case 1 
      Me.Log_Time.ControlSource = rst.Fields(i).Name 
     Case 2 
      Me.field1.ControlSource = rst.Fields(i).Name 
     Case 3 
      Me.field2.ControlSource = rst.Fields(i).Name 
     Case 4 
      Me.Field3.ControlSource = rst.Fields(i).Name 
     Case 5 
      Me.Field4.ControlSource = rst.Fields(i).Name 
     Case 6 
      Me.Field5.ControlSource = rst.Fields(i).Name 

    End Select 
skip_it: 
Next i 

rst.Close 
Set rst = Nothing 
End Sub 

が、私は十分な詳細情報を提供していない場合は私に知らせてください/情報

答えて

0

をごSQL WHERE句条件ロジックを確認してください。以下のようになり、ロジックはどちらか(両方ではない)キャンプでレコードをフィルタ:

  1. 日付の範囲に入るクエリのタグが
  2. クエリのタグは、フォームのTAG2のいずれかと等しいだけで、フォームのTAG1等しい - tag5。

おそらく、日付範囲とタグを区切ることを意図していました。したがって、AND演算子を使用して各条件のまわりのかっこを囲み、IN節を使用することもできます。説明するために下にインデントを参照してください:

... 
WHERE (
     (
      (tbl_logdata.Log_Date) Between [Forms]![frm_menu]![txtFromDate] 
            And [Forms]![frm_menu]![txtToDate] 
     ) 
    AND (
      (tbl_logdata.tag) IN (
           [Forms]![frm_menu]![cmbMplTag1], 
           [Forms]![frm_menu]![cmbMplTag2], 
           [Forms]![frm_menu]![cmbMplTag3], 
           [Forms]![frm_menu]![cmbMplTag4], 
           [Forms]![frm_menu]![cmbMplTag5] 
           ) 
     ) 
    ) 
GROUP BY tbl_logdata.Log_Date, tbl_logdata.Log_Time 
+0

恐ろしい、助けてくれてありがとう。完全に働いた –

+0

好奇心、何が問題になったのですか?私はあなたが上記の答えを受け入れたのを見ます。それは日付形式でしたか? – Parfait

+0

申し訳ありませんが、私は間違ったものを受け入れました。問題を修正した括弧 –

0

あなたは真の日付値に変換する必要があります。そしてプロパティを使用します。

qdf.Parameters("Forms!frm_menu!txtFromDate").Value = DateValue([Forms]![frm_menu]![txtFromDate]) 
qdf.Parameters("Forms!frm_menu!txtToDate").Value = DateValue([Forms]![frm_menu]![txtToDate]) 
関連する問題