在Access 2013中,我有4个不同的查询,最终需要绑定到一个报表。当位于表单上的组合框中的值不是“*”时,需要使用每个查询(有4个不同的组合框,每个查询一个)。我想知道是否可以使用If语句的变体来让Access根据这4个组合框中的每个框中的值知道我需要使用哪个查询。
例如: 如果[表单]![报表控制台]![cbo1]<>“”(不是空白)然后使用Query1作为报表的记录源,IF [Forms]![Report Console]![ cbo2]<>“”然后使用Query2作为记录源等。 它可能吗?谢谢!
答案 0 :(得分:1)
是的,您可以在RecordSource
事件中设置报告的On Open
。
Private Sub Report_Open(Cancel As Integer)
If Nz([Forms]![Report Console]![cbo1], "") <> "" Then
Me.RecordSource = "Query1"
ElseIf Nz([Forms]![Report Console]![cbo2], "") <> "" Then
Me.RecordSource = "Query2"
' etc
End If
End Sub
当然,所有查询都必须返回相同的列集。