返回列表 上一主題 發帖

[發問] 引用ado cmd的execute方法失敗

[發問] 引用ado cmd的execute方法失敗

各位大大好:
小弟想引用adodb command語法來執行
更新資料庫欄位資料,但出現語法錯誤如下:
執行階段錯誤-2147217904 (80040e10)
無值提供給一或多個必要參數
語法如下:
  1. Sub mm()
  2.    
  3. Dim cmdCommand As New ADODB.Command
  4. Dim recSet As New ADODB.Recordset
  5. Dim cn As New ADODB.Connection
  6. Dim code, dateSold As String
  7. Dim conStr As String, mFile As String, strSQLCommand As String

  8. mFile = "D:\TEMP\EX6.mdb"
  9. conStr = "Provider=Microsoft.jet.oledb.4.0;Data Source=" & mFile
  10. cn.ConnectionString = conStr
  11. cn.Open

  12. cmdCommand.ActiveConnection = cn
  13.   code = 5
  14.   dateSold = "好喝沙士"
  15.   strSQLCommand = "UPDATE tb產品2A SET 單位數量='1200' WHERE ((產品編號)=" & code & ") AND ((產品名稱)=" & dateSold & ") "
  16.   cmdCommand.CommandText = strSQLCommand
  17.   cmdCommand.CommandType = adCmdText
  18.   Set recSet = cmdCommand.Execute
  19.   
  20. End Sub
複製代碼
test-b1.rar (6.39 KB)

回復 2# GBKEE

版主大大您好:

謝謝您。
小弟依版主大大提供的方式,
問題已克服。小弟已往前邁出
一大步。但心裡還是存有疑惑
,望版主大大能再開釋。
疑問一:
code=5為何不須加單引號
而dateSold = "'好喝沙士'"
須加單引號不知有何差異。
疑問二:
小弟原是引用ado recordset
來更新資料庫欄位資料,但遇
到mysql好像不是能完全支援。
因此,想嘗試改用此方法。
但小弟的疑惑是如依此就無法
使用sql語法縮小要更新範圍
及執行recordset並直接完成更新。
而目前excel資料表每一項次是
逐項引用execute來執行。
這樣是否很不適當而有另一方
法來

TOP

回復 4# GBKEE

版主大大您好:

    讓版主大大勞心了。
小弟已先下載收藏,
也會好好研究它。

就感恩!

TOP

        靜思自在 : 要用心,不要操心、煩心。
返回列表 上一主題