Неверный синтаксис рядом с где - VBA, sql - PullRequest
0 голосов
/ 06 февраля 2020

У меня нижеприведенный vba, и я получаю сообщение об ошибке с неверным синтаксисом рядом с.

Private Sub uplodblanks()

Dim ssql, r, c, con, dstring
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim lRow

con = "Provider=SQLOLEDB;Password=0wcwlZq7hVeiu#S&bt;User ID=clx_write; Initial 
Catalog=DPEDataMartDBPrd01; Data Source=tcp:dscusnoramcloroxprd01.database.windows.net,1433;"

r = 1
c = 1
Worksheets("WTUpload").Calculate

'For i = 1 To 18
    'dstring = dstring & "'" & Sheets("WTUpload").Cells(5, i) & "' , "
'Next i
'dstring = dstring & "'" & Sheets("WTUpload").Cells(5, 19) & "'"

lRow = Cells.Find(What:="*", After:=Range("A1"), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row
cn.Open con

i = 1
For i = 1 To lRow
    ssql = "update dbo.cxu_all_load_control set driver_arr_dte = " & Sheets("WTUpload").Cells(i, 11) & " where mst_ship_num = " & Sheets("WTUpload").Cells(i, 11) & " ; "

    cn.Execute ssql

Next i

cn.Close

End Sub

1 Ответ

0 голосов
/ 07 февраля 2020

Вы должны преобразовать значения в дату и число вроде этого:

ssql = "update dbo.cxu_all_load_control set driver_arr_dte = " & CDate(Sheets("WTUpload").Cells(i, 11)) & " where mst_ship_num = " & CDbl(Sheets("WTUpload").Cells(i, 11)) & " ; "

Вы можете заменить Cdbl (...) соответствующей функцией, относящейся к типу вашего поля mst_ship_num. Но у меня есть одно замечание: почему вы используете одни и те же Sheets ("WTUpload"). Ячейки (i, 11) для подачи в два разных поля?

Еще одно замечание: предполагается, что все значения верны. Лучше всего проверить значение Sheets ("WTUpload"). Ячейки (i, 11) перед использованием в запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...