我有一张如下图所示的表格。三个排序按钮,1个预览报告按钮。
单击排序按钮时,会更新名为strsql的公开声明的变量。
我在Form
的顶部有这个代码Option Compare Database
Public strsql As String
Option Explicit
更新strsql并用于填充列表区域。
其中一个按钮点击事件
Private Sub cmdReturnDate_Click()
strsql = strSQL1 & strSQL2 & Me!cboDistricts.Value & weekEndSort
Me!teachersList.RowSource = strsql
Me!teachersList.Requery
End Sub
我正在尝试使用strsql作为在预览报告按钮上调用的报告的记录源。
我在报告的事件打开函数中有这行代码,并且可以在变量strsql中看到正确的sql
Private Sub btnPreviewReport_Click()
MsgBox (strsql)
Rem assign the sql string to the reports data property.
DoCmd.OpenReport "reportname", acViewPreview
End Sub
我要么将sql传递给报表,要么引用报表recordSource属性中的变量。
尝试在报告开放事件中引用
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource strsql
End Sub
报告目前没有显示数据,没有识别变量 - 没有输出。
问题是:如何访问/分配strsql到reports recordsource属性?
答案 0 :(得分:0)
Me.RecordSource strsql
应为Me.RecordSource = strsql
但是,当您打开报告时,您知道有WhereCondition
选项吗?
您也可以使用OpenArgs
将参数传递给报表/表单。
docmd.OpenReport reportname:="SomeReport", _
whereCondition:="Category = 33", _
openArgs:="Furniture"
答案 1 :(得分:0)
打开隐藏的报告,设置记录源,然后关闭报告并保存:
DoCmd.OpenReport "SomeReport", acViewDesign, , , acHidden
Reports!SomeReport.RecordSource = strSQL
DoCmd.Close acReport, "SomeReport", acSaveYes