VBA,ADO.Connection和查询参数

VBA,ADO.Connection和查询参数

我有excel VBA脚本:

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

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

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


红糖糍粑
浏览 1370回答 2
2回答

一只萌萌小番薯

您需要使用可以添加参数的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 WithEnd SubCommandText中的问号是参数的占位符。我相信,但我不是肯定的,你追加参数的顺序必须与问号的顺序相匹配(当你有多个时)。不要被愚弄,参数被命名为“parentid”,因为我不认为ADO关心除了识别之外的名称。
打开App,查看更多内容
随时随地看视频慕课网APP