2016-12-27 6 views
0

Я близка к точной синтаксисе, только одна большая проблема!

Идентификатор пользователя, который я захватывая из поля ввода, не передается в отчет, так что я должен ввести идентификатор пользователя дважды
Доступ к VBA для передачи параметра для отчета по запросу

Что нужно изменить для того, чтобы достичь этого?

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

Операция 'Return' предназначена для использования с [' GoSub'] (https://msdn.microsoft.com/en-us/library/office/gg251648.aspx), вероятно, вы хотите использовать 'Exit Function' , – ThunderFrame

+0

@ThunderFrame - хорошая ошибка при синтаксической ошибке. –

ответ

0

Является ли поле User_ID текстовым полем, содержащим номер? Если это так, вам нужно добавить одинарные кавычки в фильтр. ... "User_ID = '" & userId & "" ". Если это не текст, вы получаете слишком много записей или недостаточно? Есть ли другой фильтр, который применяется при загрузке отчета или в исходном источнике записи отчета, который заставляет фильтр работать не так, как ожидалось?

0

Если «дважды» означает один раз для входного поля и один раз для отчета, то "User_ID=" в вашем случае, когда условие является либо орфографическим, либо исключенным из запроса, который вы используете в качестве источника для отчета.