我很接近语法准确,只是一个大问题!
我从输入框中捕获的用户ID未被传递到报告中,因此我必须输入用户ID两次
为了达到这个目的,需要改变什么?
Public Function userProd() As Integer
Dim userID As String, saveloc As String, filename As String, reportname As String
'Report Name
reportname = "rpt_UserProduction"
'Setting Save location
saveloc = "C:\Test\"
'Setting filename
filename = "userProd "
'Getting User ID To Process
userID = InputBox("Enter User ID:", "VBA InputBox Function")
'Putting together full save location
saveloc = saveloc + filename + userID + ".pdf"
If userID = "" Then
'Do Nothing and Stop Processing
Exit Function
Else
If IsNumeric(userID) Then
'Preview Report
DoCmd.OpenReport reportname, acViewPreview, , "User_ID=" & userID
'Save As PDF
DoCmd.OutputTo acOutputReport, reportname, acFormatPDF, saveloc, True
'Close Report
DoCmd.Close acReport, reportname
End If
End If
End Function
答案 0 :(得分:0)
User_ID字段是否为包含数字的文本字段?如果是这样,您需要向过滤器添加单引号。 ..." User_ID ='" &安培; userId& "'&#34 ;.如果它不是文字,你得到的记录太多还是不够?是否在报告加载时应用了另一个过滤器,或者是否导致过滤器无法按预期工作的基础报告记录源?
答案 1 :(得分:0)
如果"两次"对于输入框表示一次,对报表表示一次,则在您的where条件中"User_ID="
拼写错误或从您用作报表来源的查询中排除。