2016-10-02 8 views
0

私は現在、さまざまなタスクのステップをリストし、リビジョンカウントを追跡するレポートを持っています。各ページは1つのタスクで、すべてのステップがその下にあります。レポートの終わりに、改訂履歴があり、改訂履歴を更新するために変更された内容が一覧表示されます。私はレポートのために2つのクエリを持っています.1つはレポートデータを生成し、もう1つはリビジョン履歴を生成します。Accessレポートフィールドの値とVBAを使用したクエリの比較

私がする必要があることは、どのタスクに変更が加えられているかを示すことです。私は、各レポートページのTask_IDをリビジョン履歴クエリにあるTask_IDと比較することで、これを実行したいと考えています。

私はdlookupsとdcountsのいくつかのバリエーションを運とせずに試しました。私はコードを監視するたびに、それを誤ったものとして扱い続け、それを終了させます。

If DLookup("[Task_ID]", "[qry_revision_history_conversions]") = [Reports]![rpt_WI_Book].[Report]![Task] Then 
[Reports]![rpt_WI_Book].[Report]![Rev_Change].Visible = False 

それはおそらく私が欠けている、本当にシンプルなものだが、私はそれのまわりで私の頭を包むように見えることはできません。

これは私が動作させるために使用したコードです。

Dim LookupTask As Variant 
Dim lngRed As Long, lngYellow As Long, lngWhite As Long 
lngRed = RGB(255, 0, 0) 
lngBlack = RGB(0, 0, 0) 
lngYellow = RGB(255, 255, 0) 
lngWhite = RGB(255, 255, 255) 

LookupTask = DLookup("[Task_ID]", "[qry_task_check]", [Reports]![rpt_WI_Book].[Report]![Text474]) 

If LookupTask = [Reports]![rpt_WI_Book].[Report]![Text474] Then 
    [Reports]![rpt_WI_Book].[Report]![Text474].BackColor = lngYellow 

Else 
[Reports]![rpt_WI_Book].[Report]![Text474].BackColor = lngWhite 
End If 
+0

あなたの 'DLookUp()'に条件がないので、常に最初の* TaskID *を返します。また、データ型は整列しますか?サブレポート制御*タスク*はIDのような整数ですか? – Parfait

答えて

1

テーブルにはどのフィールドが正確かわかりませんが、TaskIDを[レポートタスク]フィールドに一致させようとしていますか?

the DLookup docs

から

あなたが基準の値を指定しない場合、のDLookup関数はランダムな値を返します

のDLookup内のあなたの基準を使用して、ヌルをチェック:

Dim LookupTask as Variant 

LookupTask = DLookup("[Task_ID]", "[qry_revision_history_conversions]", "[Task_ID] = " & [Reports]![rpt_WI_Book]![Task]) 

If Not IsNull(LookupTask) Then 
    [Reports]![rpt_WI_Book]![Rev_Change].Visible = False 
End If 
+0

私はそのコードを試したが、それは役に立たなかった。さらに詳しく説明する必要がありますが、レポートの[タスク]フィールドは別のクエリによって生成され、レポートの各セクションには各タスクがリストされます。私が実行しているクエリは、最近変更されたかどうかに応じて、1つのタスクIDまたは複数のタスクIDを持つことができます。そのため、qry_revision_history_conversionsにタスクIDだけが表示されていれば、イメージが表示されます。 – vxd128

+0

あなたは正しいです - あなたの質問にこれらの重要な詳細を含めるべきです – dbmitch

+0

私は正しい方向を指し示すことができましたが、追加のクエリを作成していくつかの細かな修正を加え、今すぐ稼働させる必要がありました。それだけでなく、働いているときに熱に苦しんでいないことにも役立ちます。 – vxd128

関連する問題