将Access报告字段中的值与使用VBA

时间:2016-10-02 22:37:58

标签: ms-access access-vba ms-access-2013

我目前有一份报告,其中列出了各种任务的步骤并跟踪修订计数。每个页面都是一个任务,其中包含所有步骤。在报告的末尾是修订历史记录,其中列出了更改内容以更新修订计数。我有两个查询报告,一个用于生成报告数据,另一个用于生成修订历史记录。

我需要做的是显示哪些任务有变化。我想通过将每个报告页面上的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

1 个答案:

答案 0 :(得分:1)

确定您的表格中确切的字段,但也许我可以假设您正在尝试将TaskID与报告任务字段匹配?

来自the DLookup docs

如果您没有为条件提供值,则DLookup函数会返回一个随机值

在DLookup中使用您的条件,然后检查Null:

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