各位大大好!
最近想在用Excel來更新資料庫的資料
https://www.youtube.com/watch?v=xC8rDlji7ok
參考上方連結的影片
但是自己在依樣畫葫蘆時卻遇到困難,會出現
執行階段錯誤'-2147217900(80040e14)':接近':'之處的語法不正確
Private Sub 更新資料_Click()
Dim con As ADODB.Connection
Set con = New ADODB.Connection
Dim CC001 As String
Dim CC002 As String
Dim CC003 As String
Dim CC004 As String
Dim CC005 As Double
con.Open "Provider=SQLOLEDB;" & _
"Data Source =xxxxxxxxx;" & _
"Initial Catalog=xxxx;" & _
"User ID=xxx ; Password=xxx"
CC001 = TextBox1.Text
CC002 = TextBox2.Text
CC003 = TextBox3.Text
CC004 = TextBox4.Text
CC005 = CDbl(TextBox5.Text)
Sql = "update CARCC set CC001='" & CC001 & "',CC002='" & CC002 & "'," & _
"CC003=" & CC003 & ",CC004=" & CC004 & ",CC005=" & CC005 & " " & _
"WHERE CC001=" & CC001 & " "
Dim rowsAffected As Integer
con.Execute Sql, rowsAffected
If rowsAffected = 1 Then
MsgBox "success"
Else
MsgBox "failed"
End If
con.Close
Set con = Nothing
End Sub
其中con.Execute Sql, rowsAffected在偵錯時會出現問題
(上傳的Data Source是遮擋的部分喔)
還望各位大大幫忙
加一列Debug.print Sql
,變成
Sql = "update CARCC set CC001='" & CC001 & "',CC002='" & CC002 & "'," & _
"CC003=" & CC003 & ",CC004=" & CC004 & ",CC005=" & CC005 & " " & _
"WHERE CC001=" & CC001 & " "
Debug.print Sql
比較容易看出 SQL 敍述那裡有誤
感謝海綿寶寶大大~
後面有問題的目前不是Sql那裡,我再試看看
有問題的目前不是Sql那裡
更正一下,有問題的就是
Sql那裡
你要改組成 Sql 的那部份
使得
目前的
update CARCC set CC003='05:55:00',CC004=22:44:00,CC005=671.88 WHERE CC001=KLE-8080,CC002=2021-10-01
變成以下
update CARCC set CC003='05:55:00',CC004='22:44:00',CC005=671.88 WHERE CC001='KLE-8080',CC002='2021-10-01'
才有機會正常執行
白話點說 就是 CC004,CC001,CC002 都要加單引號 就像 CC003 一樣
確實是那裡的問題
超級感謝海綿寶寶大大
Dim CC001 As String
Dim CC002 As String
Dim CC003 As String
Dim CC004 As String
Dim CC005 As Double
CC001已經是where條件了,應該不需要再update了。
Sql = "update CARCC set CC002='" & CC002 & "'," & _
"CC003='" & CC003 & "',CC004='" & CC004 &"',CC005=" & CC005 & _
" WHERE CC001='" & CC001 & "'"
感謝allenlwh大大
根據我的條件已經修改成
Sql = "update CARCC set CC003='" & CC003 & "',CC004=" & CC004 & ",CC005=" & CC005 & " WHERE CC001=" & CC001 & ",CC002=" & CC002 & " "
因為CC001和CC002是不用更改的
看一下你的sql即時運算
日期沒引號、字串沒引號、另一個不知道是數字還是什麼的
會出現錯誤是也是應該的
那個出現':'之處的語法不正確大概就是sql把時間當成數字所以報錯的
sql要依資料型別修改
Sql = "update CARCC set CC003='" & CC003 & "',CC004='" & CC004 & "',CC005='" & CC005 & "' WHERE CC001='" & CC001 & "',CC002='" & CC002 & "' "
重要資訊記得馬掉
感謝bsexp301479大大~
已經修改好囉