【发布时间】:2014-08-14 11:52:01
【问题描述】:
我有一个包含五个表(LDAP_Users、USERS、Courts Users、Accounts 和 Supervisors)的数据库,所有这些表都由 LDAP 表中的用户名链接。我创建了一个查询,从五个表中检索 10 个字段。我还创建了一个表单来显示这十个字段。表单的结构是 Supervisor 是组,其下是主管的姓名、电子邮件和电话号码,然后是受监管的用户、用户可以访问的帐户和帐户访问的类型。
我有以下代码,我的最终状态是让数据库遍历每个主管并检索他们作为报告的一部分监管的用户。将文件保存到我的网络驱动器并最终获取电子邮件变量并通过电子邮件将特定报告发送给主管。
问题,第一个报告保存到网络,但由 31 个页面组成的第二个只是继续循环,并没有移动到下一个主管。就电子邮件而言,我完成了迭代,然后继续处理电子邮件。
我是 VBA 的新手,非常感谢您的帮助。
Private Sub CreateReports_Click()
Dim x As String
Dim y As String
Dim StrSQL
Dim stWhereStr As String 'Where Condition'
Dim stSection As String 'Selection from drop down list
Dim stfile As String
StrSQL = "SELECT distinct [Sup] " & _
"FROM ([OPDA ISSR - FedInvest Users by Account/Sup])"
y = Year(date)
Set rst = CurrentDb.OpenRecordset("OPDA ISSR - FedInvest Users by Account/Sup")
If rst.EOF And rst.BOF Then
MsgBox "No data available for the Ledger Process routine."
Else
rst.MoveFirst
Do While Not rst.EOF
x = rst![Sup]
stDocName = "FedInvest - ISSR Recertification Report"
stWhereStr = "[OPDA ISSR - FedInvest Users by Account/Sup].[SUP]= '" & x & "'"
stfile = "MYNETWORKDRIVE" & x & " - " & y & " FedInvest InvestOne Recertification.pdf"
DoCmd.OpenReport stDocName, acPreview, , stWhereStr
DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, stfile
DoCmd.Close acReport, stDocName
rst.MoveNext
Loop
End If
rst.Close
Set rst = Nothing
End Sub
【问题讨论】:
-
我一直让代码运行,5 分钟后,我完成了 10 份报告。不太确定这是怎么回事,但看起来代码正在继续重新创建文件。