【发布时间】:2018-07-27 14:24:08
【问题描述】:
我之前问过这个问题,但我仍然卡住,无法将参数放入 SQL 查询中。
Public Function testInsert(tableName As String, dType As String, role As String,
FiscalYear As String)
Dim cmd As ADODB.Command
Dim conn As ADODB.connection
Dim prm As ADODB.Parameter
Dim connectionString As String
Dim SQL As String
Set conn = New ADODB.connection
Set cmd = New ADODB.Command
DBPath = "path\to\file.xlsm"
connectionString = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath &";HDR=Yes';"
SQL = "INSERT INTO [" & tableName & "$] ([Year], [Type], [role]) VALUES (p1, p2, p3)"
'Open connection
conn.Open connectionString
'Set command text
cmd.CommandText = SQL
cmd.CommandType = adCmdText
'Set connection
cmd.ActiveConnection = conn
'Set paramters in SQL query
Set prm = cmd.CreateParameter("p1", adInteger, adParamInput)
cmd.Parameters.Append prm
cmd.Parameters("p1").Value = 1
Set prm = cmd.CreateParameter("p2", adInteger, adParamInput)
cmd.Parameters.Append prm
cmd.Parameters("p2").Value = 2
Set prm = cmd.CreateParameter("p3", adInteger, adParamInput)
cmd.Parameters.Append prm
cmd.Parameters("p3").Value = 3
cmd.Execute
conn.Close
End Function
我在 excel-2010 中使用 VBA,并且正在对我计算机上的外部 excel 文件运行查询。我得到的参数太少,预计会出现三个错误。
请注意,如果值是字符串文字,则此代码有效,因此问题出在参数上。
【问题讨论】:
标签: sql vba excel-2010