将 Access 报告字段中的值与使用 VBA 的查询进行比较
Comparing value in Access report field to a query using 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
不确定您的 table 中到底有哪些字段,但也许我可以假设您正在尝试将 TaskID 与 Report Task 字段相匹配?
如果您没有为标准提供值,DLookup 函数returns一个随机值
在 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
我目前有一份报告,其中列出了各种任务的步骤并跟踪修订计数。每个页面都是一个任务,所有步骤都在它下面。报告末尾是修订历史记录,其中将列出更改的内容以更新修订计数。我对报告有两个查询,一个生成报告数据,另一个生成修订历史记录。
我需要做的是显示哪些任务对其进行了更改。我想通过将每个报告页面上的 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
不确定您的 table 中到底有哪些字段,但也许我可以假设您正在尝试将 TaskID 与 Report Task 字段相匹配?
如果您没有为标准提供值,DLookup 函数returns一个随机值
在 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