为了账号安全,请及时绑定邮箱和手机立即绑定

VBA,ADO.Connection和查询参数

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在查询字符串外设置。我该怎么做?当然我可以修改查询字符串,但我认为这不是很明智。
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

您需要使用可以添加参数的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关心除了识别之外的名称。


查看完整回答
反对 回复 2019-08-13
  • 2 回答
  • 0 关注
  • 1369 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信