我在访问 vba 中有一个我正在循环的查询,结果是一个属性的名称,我想用这个名称打开一个报告,该报告使用一个参数是属性名称的查询。循环很好,我遇到的问题是将该参数传递给循环中的报告。我尝试了一些事情,但无济于事,我不断收到一条消息以手动传递参数。该循环基本上将通过电子邮件附件向财产的每个所有者发送报告。当我在没有循环的情况下一一进行报告时,它工作正常,但在循环中,它似乎没有拾取属性名称。
问问题
231 次
1 回答
0
您需要做的是循环查询并打开查询中每条记录的报告。就像是:
Dim db as Database
Dim rec as Recordset
Dim PName as String
Set db = CurrentDB
Set rec = db.OpenRecordset ("Select * from YourQueryName")
Do While rec.EOF = False
PName = rec("PropertyName")
DoCmd.OpenReport "ReportBookingsForSites", acViewPreview, , , , PName
Loop
Set rec = Nothing
Set db = Nothing
将 PName 放入 OpenReport 字符串的原因是因为您传递了所谓的“OpenArgs”。这允许您打开报表并使用变量。
在报告的 OnLoad 事件中,输入如下内容:
Me.RecordSource = "Select * from Whatever where PropertyName = '" & Me.OpenArgs & "'"
那应该这样做。
于 2013-10-31T15:06:15.460 回答