Я пытаюсь следовать набору кода цикла для моей конкретной потребности в базе данных Access. И я бег в эту ошибкуОшибка во время выполнения SQL VBA 3075: ошибка синтаксиса (отсутствующий оператор) в выражении запроса
Run-Time Error 3075: Syntax error(missing operator) in query expression 'SYRLIB_FLCRDD14.CRARNO=SYRLIB_FPCRDHDR.CHARNO From SYRLIB_FLCRDD14 INNER JOIN SYRLIB_FPCUSMAS on SYRLIB_FLCRDD14.CRCUST=SYRLIB_FPCUSMAS.CNUMBR From SYRLIB_FLCRDD14 INNER JOIN SYRLIB_FPSECFIL on SYRLIB_FLCRDD14.CRCLRK=SYRLIB_FPSECFIL.SECNUM FROM SYRLIB FLCRDD1'.
(для части жирного шрифта, я думаю, что это должно быть SYRLIB_FLCRDD14, я перерыл весь код, все 23 матчей пишутся как «FLCRDD14», я не вижу «FLCRDD1». Я что-то не хватает?)
Благодарим вас за комментарий ниже! Я повторно отредактировал и повторно вставил весь набор кода на основе приведенных ниже предложений. Я также вынул кронштейн около SELECT
и вынул запятую после [Проблема]. Я использовал ближайшее окно и запустил новый запрос. Это дает другую ошибку: Синтаксическая ошибка (отсутствующий оператор) в выражении запроса «SYRLIB_FLCRDD14.CRCMMT».
Sub RunDistrackData() 'Pulls Customer Rebate Data
'On Error GoTo Err_Handler:
'DoCmd.SetWarnings False
'DoCmd.Hourglass True
Dim rst2 As ADODB.Recordset
Set rst2 = New ADODB.Recordset
rst2.Open "[TblDC]", CurrentProject.Connection
Dim sCHAR As String
Dim sName As String
Dim sNUM As String
Dim SQry As String
Dim mySQL As String
Dim qfd As QueryDef
Dim db As Database
Set db = CurrentDb
Dim bTime As Date
Dim eTime As Date
'bTime = Now()
rst2.MoveFirst
DoCmd.OpenQuery "Clear Data", acViewNormal, acEdit
Do While Not rst2.EOF
sCHAR = rst2.Fields("DC CHAR")
sNUM = rst2.Fields("DCNum")
sName = rst2.Fields("DCName")
mySQL = "INSERT INTO [Data]([DC],[DC Name],[Customer Type],[Printed Date],[Entered Date],"
mySQL = mySQL & " [Customer Number],[Customer Name],[Transfer Invoice],[Item Number],"
mySQL = mySQL & " [Item Description],[CRTYPE],[Reason for Return],[Dist Return Code Override],"
mySQL = mySQL & " [Qty Returned],[CRRPCS],[CRCRTT],[CRDBCR],[CRINV#],[CRCMMT],"
mySQL = mySQL & " [GEN CMMT1],[GEN CMMT2],[GEN CMMT3],[Issue by])"
mySQL = mySQL & " SELECT " & sNUM & " AS [DC], '" & sName & "' AS [DC Name], "
mySQL = mySQL & " " & sCHAR & "LIB_FPCUSMAS.CSBSTY AS [Customer Type], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRCMDT AS [Printed Date], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRPRDT AS [Entered Date], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRCUST AS [Customer Number], "
mySQL = mySQL & " " & sCHAR & "LIB_FPCUSMAS.CLNAME AS [Customer Name], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRARNO AS [Transfer Invoice], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRITEM AS [Item Number], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRDESC AS [Item Description], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRTYPE, "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRRESN AS [Reason for Return], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRDSOV AS [Dist Return Code Override], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRQTSR AS [Qty Returned], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRRPCS, "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRCRTT, "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRDBCR, "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.[CRINV#], "
mySQL = mySQL & " " & sCHAR & "LIB_FLCRDD14.CRCMMT, "
mySQL = mySQL & " " & sCHAR & "LIB_FPCRDHDR.CHCMT1 AS [GEN CMMT 1], "
mySQL = mySQL & " " & sCHAR & "LIB_FPCRDHDR.CHCMT2 AS [GEN CMMT 2], "
mySQL = mySQL & " " & sCHAR & "LIB_FPCRDHDR.CHCMT3 AS [GEN CMMT 3], "
mySQL = mySQL & " " & sCHAR & "LIB_FPSECFIL.SECNAM AS [Issue by] "
'change below to connect FLCRDD14 table to whichever order table adding. add order details above
mySQL = mySQL & " From " & sCHAR & "LIB_FLCRDD14 INNER JOIN " & sCHAR & "LIB_FPCRDHDR"
mySQL = mySQL & " ON " & sCHAR & "LIB_FLCRDD14.CRARNO = " & sCHAR & "LIB_FPCRDHDR.CHARNO"
mySQL = mySQL & " From " & sCHAR & "LIB_FLCRDD14 INNER JOIN " & sCHAR & "LIB_FPCUSMAS"
mySQL = mySQL & " ON " & sCHAR & "LIB_ FLCRDD14.CRCUST = " & sCHAR & "LIB_FPCUSMAS.CNUMBR"
mySQL = mySQL & " From " & sCHAR & "LIB_FLCRDD14 INNER JOIN " & sCHAR & "LIB_FPSECFIL "
mySQL = mySQL & " ON " & sCHAR & "LIB_FLCRDD14.CRCLRK = " & sCHAR & "LIB_FPSECFIL.SECNUM"
mySQL = mySQL & " FROM " & sCHAR & "LIB_FLCRDD14"
mySQL = mySQL & " WHERE (((" & sCHAR & "LIB_FPGLJNLDBK.CRITEM)"
mySQL = mySQL & " Like '*358300*') "
mySQL = mySQL & " AND ((" & sCHAR & "LIB_FPGLJNLDBK.CRCMDT)"
mySQL = mySQL & " Between [Forms]![Form1]![StartDate] "
mySQL = mySQL & " And [Forms]![Form1]![EndDate]));"
mySQL = mySQL & " AND ((" & sCHAR & "LIB_FPGLJNLDBK.CRRESN)"
mySQL = mySQL & " Like ('*MS*'Or '*RB*'Or '*GR*'))"
mySQL = mySQL & " AND ((" & sCHAR & "LIB_FPGLJNLDBK.CRITEM)>0))"
Debug.Print mySQL
SQry = "Income" & sCHAR
Set qfd = db.CreateQueryDef(SQry, mySQL)
qfd.ODBCTimeout = 9999
RefreshDatabaseWindow
DoCmd.OpenQuery "Data" & sCHAR
db.QueryDefs.Delete (SQry)
rst2.MoveNext
Loop
'add additional queries here
'DoCmd.OpenQuery "..............."
DoCmd.OpenQuery "Add MIF Data"
'DoCmd.SetWarnings True
'DoCmd.Hourglass False
rst2.Close
Set rst2 = Nothing
'eTime = Now()
'MsgBox "Report run is completed. Run Time = " & Format([eTime] - [bTime], "hh:nn:ss")
End Sub
Просьба представить окончательное значение переменной MYSQL. Мы не можем установить это из фрагмента кода (кстати, это неполное). –
Удалить запятую в последней строке '[Issue by],'? –
Не скопируйте ключевые слова SQL ... это неправильно: '[SELECT]' – HansUp