2016-10-02 62 views
0

我目前有一份报告,列出各种任务的步骤并跟踪修订计数。每个页面都是一项任务,包含所有步骤。报告末尾是一个修订历史记录,它将列出更改修订计数的内容。我有两个查询报告,一个用于生成报告数据,另一个用于生成修订历史记录。使用VBA将Access报表字段中的值与查询进行比较

我需要做的是显示哪些任务在其上发生了变化。我想通过将每个报告页面上的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与Report Task字段进行匹配?

the DLookup docs

如果没有供应的标准值,查阅函数返回一个随机值

使用内部使用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

我试过这段代码,它没有帮助。我应该详细阐述,但报告中的“任务”字段由单独的查询生成,并且报告的每个部分都将列出每个任务。我正在运行的查询可能只有一个任务ID或多个,具体取决于它最近是否发生了更改。正因为如此,我只希望在qry_revision_history_conversions中只显示任务ID的情况下显示图像。 – vxd128

+0

你是对的 - 你应该在你的问题中包括这些重要的细节 – dbmitch

+0

你可以让我指出正确的方向,但我只需要创建一个额外的查询,做一些很好的修改,现在它已经启动并运行。另外它还有助于在工作时不会发烧。 – vxd128

相关问题