gpt4 book ai didi

VBA、ADO.Connection 和查询参数

转载 作者:行者123 更新时间:2023-12-03 11:33:46 24 4
gpt4 key购买 nike

我有 excel VBA 脚本:

Set cоnn = CreateObject("ADODB.Connection")
conn.Open "report"
Set rs = conn.Execute("select * from table" )

脚本工作正常,但我想为其添加参数。例如“where (parentid = myparam)”,其中 myparam 设置在查询字符串之外。我该怎么做?

当然我可以修改查询字符串,但我认为这不是很明智。

最佳答案

您需要使用可以添加参数的 ADODB.Command 对象。基本上这就是它的样子

Sub adotest()

Dim Cn As ADODB.Connection
Dim Cm As ADODB.Command
Dim Pm As ADODB.Parameter
Dim Rs as ADODB.Recordset

Set Cn = New ADODB.Connection
Cn.Open "mystring"
Set Cm = New ADODB.Command
With Cm
.ActiveConnection = Cn
.CommandText = "SELECT * FROM table WHERE parentid=?;"
.CommandType = adCmdText

Set Pm = .CreateParameter("parentid", adNumeric, adParamInput)
Pm.Value = 1

.Parameters.Append Pm

Set Rs = .Execute
End With

End Sub

CommandText 中的问号是参数的占位符。我相信,但我并不肯定,您附加参数的顺序必须与问号的顺序相匹配(当您有多个问号时)。不要被参数命名为“parentid”而被愚弄,因为我认为 ADO 不关心名称,而不是用于标识。

关于VBA、ADO.Connection 和查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com