我在访问vba中查询我正在循环,结果是一个属性的名称,并且使用此名称我想打开一个报告,该报告使用带有一个参数(即属性名称)的查询。循环很好我遇到的问题是将该参数传递给循环中的报表。我尝试了一些东西,但无济于事,我不断收到消息,手动传递参数。该循环基本上将通过电子邮件附件向该财产的每个所有者发送报告。当我一个接一个地执行报告而没有循环时它工作正常,但在循环中似乎没有拿起属性名称。
答案 0 :(得分: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 & "'"
应该这样做。