Почему я получаю ошибку синтаксиса SQL "Ожидаемый лексический элемент не найден: =)"? - PullRequest
0 голосов
/ 15 января 2019

Почему я получаю ошибку синтаксиса SQL:

Ожидаемый лексический элемент не найден: =)

Вот мой код: Кажется, я не могу найти, где синтаксическая ошибка

Dim oConnection
Dim oRecordset
Dim sMsg
Dim sConnectString
Dim sSQL

customer = Forms.InvoiceForm.customerName
account = Forms.InvoiceForm.accountName
term = Forms.InvoiceForm.termName
names = Forms.InvoiceForm.nameText
addresses = Forms.InvoiceForm.addressText
city = Forms.InvoiceForm.cityText
state = Forms.InvoiceForm.stateText
postal = Forms.InvoiceForm.postalText
country = Forms.InvoiceForm.countryText
transDate = Forms.InvoiceForm.transactionText
dueDate = Forms.InvoiceForm.dueText
shipDate = Forms.InvoiceForm.shipText
tax = Forms.InvoiceForm.taxState
taxCode = Forms.InvoiceForm.taxCode

sConnectString = "DSN=Quickbooks Data;OLE DB Services=-2;"

sSQL = "INSERT INTO Invoice (CustomerRefListID, ARAccountRefListID,    TxnDate, RefNumber, BillAddressAddr1, BillAddressAddr2, BillAddressCity, BillAddressState, BillAddressPostalCode, BillAddressCountry, IsPending, TermsRefListID, DueDate, ShipDate, ItemSalesTaxRefListID, Memo, IsToBePrinted, CustomerSalesTaxCodeRefListID) VALUES ('" & customer & "', '" & account & "', #9/23/2020#, '1','" & names & "', '" & addresses & "', '" & city & "', '" & state & "', '" & postal & "', 'USA',0, '" & term & "', #10/31/2020# , #10/01/2020# , '" & tax & "','hello', 0,'" & taxCode & "')"

Set oConnection = CreateObject("ADODB.Connection")
Set oRecordset = CreateObject("ADODB.Recordset")
oConnection.Open sConnectString
oConnection.Execute (sSQL)
sMsg = sMsg & "Invoice was Sent to QuickBooks"
MsgBox sMsg

Эта жестко закодированная версия запроса работала без проблем

INSERT INTO InvoiceLine (InvoiceLineItemRefListID, InvoiceLineDesc, InvoiceLineRate, InvoiceLineAmount, InvoiceLineSalesTaxCodeRefListID, FQSaveToCache) VALUES ('80002436-1519061496', 'Building permit 1', 1.00000, 1.00, '80000001-1478562826', 1)

INSERT INTO Invoice (CustomerRefListID, ARAccountRefListID, TxnDate, RefNumber, BillAddressAddr1, BillAddressAddr2, BillAddressCity, BillAddressState, BillAddressPostalCode, BillAddressCountry, IsPending, TermsRefListID, DueDate, ShipDate, ItemSalesTaxRefListID, Memo, IsToBePrinted, CustomerSalesTaxCodeRefListID) VALUES ('800001F6-1482536280', '8000001E-1478562986', #9/23/2020#, '1', 'Brad Lamb', '1921 Appleseed Lane', 'Bayshore', 'CA', '94326', 'USA', 0, '80000002-1478562832', #10/31/2020#, #10/01/2020#, '8000295C-1541711590', 'Memo Test', 0, '80000001-1478562826')

1 Ответ

0 голосов
/ 15 января 2019

memo - зарезервированное слово, его нельзя использовать в качестве имени поля.

...