2013-10-31 160 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

好吧,我會嘗試。 –