簡體   English   中英

VB6 ADO INSERT 將 TEXT 字段插入.MDB

[英]VB6 ADO INSERT of TEXT field into .MDB

我的示例 VB6 程序:

Dim conn As New connection
conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\adatabase.mdb;"
conn.Execute "INSERT INTO atable (afield) VALUES (""some text"")"
End Sub

(“adatabase.mdb”包含一個表“atable”,其中一個字段“afield”的類型為“Text”,長度為 255。Access 2002,Access 文件格式 2000。VB6 引用包括“Microsoft ActiveX Data Objects 2.8 Library”。)

conn.Execute 得到:

運行時錯誤 '-2147217904 (80040e10' [Microsoft][ODBC Access Driver] 參數太少。預期為 1。

查詢

INSERT INTO atable (afield) VALUES ("some text")

直接在Access中運行沒有任何問題。

那不應該是:

conn.Execute "INSERT INTO atable (afield) VALUES ("""some text""")"

即你需要引用雙引號嗎?

更新:或作為海報解決,使用單引號引用文本。

或者更好的是,使用參數化查詢:

Dim Conn1 As ADODB.Connection
Dim Cmd1 As ADODB.Command
Dim Param1 As ADODB.Parameter
Dim Rs1 As ADODB.Recordset

' Create and Open Connection Object.
Set Conn1 = New ADODB.Connection
Conn1.ConnectionString = "DSN=Biblio;UID=admin;PWD=;"
Conn1.Open

' Create Command Object.
Set Cmd1 = New ADODB.Command
Cmd1.ActiveConnection = Conn1
Cmd1.CommandText = "SELECT * FROM Authors WHERE AU_ID < ?"

' Create Parameter Object.
Set Param1 = Cmd1.CreateParameter(, adInteger, adParamInput, 5)
Param1.Value = 5
Cmd1.Parameters.Append Param1
Set Param1 = Nothing

' Open Recordset Object.
Set Rs1 = Cmd1.Execute()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM