Microsoft Access 2000 VBA

时间:2013-10-31 14:29:51

标签: vba ms-access access-vba

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

1 个答案:

答案 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 & "'"

应该这样做。