0
我有一个功能,我的报告分成基于字段id
单独的PDF文件的表达式:2427输入了没有价值
Public Function PrintList() As String
Dim MyPath As String
Dim MyFilename As String
Dim myId As String
Dim filter As String
MyPath = "C:\reports\"
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT DISTINCT id FROM table")
'Loop through the set
Do While Not rs.EOF
If Not IsEmpty(rs!id) And Not IsNull(rs!id) Then
myId = rs!id
Else
myId = ""
End If
filter = "id = '" & myId & "'"
'Open report preview and auto-save it as a PDF
DoCmd.OpenReport "myReport", acViewPreview, , filter
MyFilename = "N" & myId & ".pdf"
DoCmd.OutputTo acOutputReport, "", acFormatPDF, MyPath & MyFilename, False
'Close the previewed report
DoCmd.Close acReport, "myReport"
rs.MoveNext
Loop
End Function
但是,在运行一段时间,我会得到这个错误/警告:
2427您输入了一个没有值的表达式。
这发生在id
为空时。我甚至不知道这是错误还是警告。点击确定后,该功能继续运行直至结束,没有任何问题,输出文件将被命名为N.pdf
。
由于此消息框不像通常的错误消息框,并且由于它没有给我选项来调试或结束执行,我猜这不是错误?
我试图用DoCmd.SetWarnings False
压制警告,但它不起作用。
我该如何解决这个问题,或者至少抑制它,让它不出现?
应该不是第二个'身份识别码= RS id'是'myId =“”'而不是? – Chin 2014-08-27 16:41:29
即使没有短路,这些表达式仍然评估为真或假? – ashareef 2014-08-27 16:45:53
这是真的,我还没有看到问题来自哪里。你能否更详细地为我解释一下RBarryYoung? – Chin 2014-08-27 16:49:57