Я пытаюсь использовать оператор SQL для источника записей отчета с использованием VBA.Я знаю, что SQL работает, потому что я скопировал SQL из SQL-представления запроса, который работал.
Вот источник данных SQL, который запускает событие открытия отчета.Я внес одно изменение в оператор SQL, который добавлял переменную strInput
, которую можно увидеть в предложении WHERE.
Private Sub Report_Open(Cancel As Integer)
Dim sql As String
Dim strInput As String
strInput = Me.OpenArgs
sql = "SELECT DISTINCTROW INV.NUM, INV.SUB, [INVD]![QTY]*([INVD]![VDR]+[INVD]![MATQ]) AS Expr1, [INVD]![QTY]*[INVD]![LPR] AS Expr2, [Expr1]+[Expr2] AS Expr3, [INVD]![MATQ]+[INVD]![VDR] AS Expr4, ([INVD]![MATQ]+[INVD]![VDR])*[INVD]![QTY]*0.8 AS Expr5" & _
" FROM (JOBS INNER JOIN UN ON JOBS.UNID = UN.JOBS) INNER JOIN ((CONT INNER JOIN INV ON CONT.CTNO = INV.CTNO) INNER JOIN INVD ON (INV.CTNO = INVD.CTNO) AND (INV.INV = INVD.INV)) ON (UN.UNID = INVD.UNID) AND (UN.CTNO = INVD.CTNO)" & _
" WHERE (((INV.JOB) = [Forms]![02- UNIT JOB INVOICE ENTRY]![JOB])) AND InvNum = ' " & strInput & "'" & _
" ORDER BY INV.CTNO, INV.JOB, INV.INV, INVD.ITEM;"
If Me.OpenArgs <> "" Then
Me.RecordSource = sql
End If
End Sub
Я получаю ошибку
thisвыражение напечатано неправильно, или оно слишком сложно для оценки
Я знаю, что есть похожие открытые темы, но эти решения не сработали для меня.Спасибо.
Редактировать 1:
На основании вашего ответа я удалил процедуру открытия и попытался использовать предложение where, как вы сказали
MsgBox strInput
DoCmd.OpenReport "PRINT REPORT", acPreview, , "INVD.InvNum =' " & strInput & "'"
Это теперь даетмне та же ошибка
это выражение набрано неверно или оно слишком сложно для оценки