2013-10-31 118 views
0

我有access vba查询,我正在循环,结果是一个属性的名称,并与此名称我想打开一个报告,使用查询与一个参数是属性名称。循环很好,我遇到的问题是将该参数传递给循环中的报告。我已经尝试了一些东西,但无济于事,我不断收到一条消息来手动传递参数。该循环基本上将通过电子邮件附件向该财产的每个所有者发送报告。当我一个接一个地做没有循环的报告时,它可以很好地工作,但是在循环中它似乎没有提取属性名称。微软Access 2000 VBA

+0

你正在查找属性名称,然后试图循环通过属性所有者发送相同的报告给每个? – HelloW

+0

嗨,我收到一个结果集首先返回一个私人名称(房子名称),然后结果我想通过属性名称的报告,然后我可以通过电子邮件发送每个所有者在循环内的报告。 –

+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 & "'" 

应该这样做。

+0

好吧,我会尝试。 –