0

我在访问 vba 中有一个我正在循环的查询,结果是一个属性的名称,我想用这个名称打开一个报告,该报告使用一个参数是属性名称的查询。循环很好,我遇到的问题是将该参数传递给循环中的报告。我尝试了一些事情,但无济于事,我不断收到一条消息以手动传递参数。该循环基本上将通过电子邮件附件向财产的每个所有者发送报告。当我在没有循环的情况下一一进行报告时,它工作正常,但在循环中,它似乎没有拾取属性名称。

4

1 回答 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 回答