我这辈子都不记得如何使用 Access VBA 来获取报表中特定控件的值。
我的报告有多行(它包含一个带有查询结果的表)。我希望能够双击一行中的一个字段并打开一个包含第二个查询结果的单独表单。这些结果应基于包含最初双击的字段文本的 WHERE 子句。
如果我使用 Me.ControlName.Value,我的第二个报告将使用第一个报告中的每条记录。我如何告诉它只使用被双击的记录?
我这辈子都不记得如何使用 Access VBA 来获取报表中特定控件的值。
我的报告有多行(它包含一个带有查询结果的表)。我希望能够双击一行中的一个字段并打开一个包含第二个查询结果的单独表单。这些结果应基于包含最初双击的字段文本的 WHERE 子句。
如果我使用 Me.ControlName.Value,我的第二个报告将使用第一个报告中的每条记录。我如何告诉它只使用被双击的记录?
使用WhereCondition选项DoCmd.OpenReport
根据第一个报表中的双击字段筛选第二个报表的记录集。
以下示例在 Access 2007 中使用您的示例 db 文件进行了测试。报告文本框Fruit具有双击事件过程,该过程根据文本框的值创建WhereCondition字符串,然后OpenReport
使用该字符串调用...
Private Sub Fruit_DblClick(Cancel As Integer)
Dim strWhere As String
strWhere = "[Fruit]='" & Me.Fruit.Value & "'"
Debug.Print strWhere
DoCmd.OpenReport ReportName:="rptLabel", _
View:=acViewPreview, WhereCondition:=strWhere
End Sub