Ms access VBA ADODB-从参数化查询获取参数

Ms access VBA ADODB-从参数化查询获取参数,ms-access,vba,ado,Ms Access,Vba,Ado,我试图使用以下代码从MS Access数据库中存储的参数化查询中获取参数名称: Dim cmd As New ADODB.Command Dim cnn As ADODB.Connection Set cnn = CurrentProject.Connection With cmd .ActiveConnection = cnn .CommandType = adCmdStoredProc .NamedParameters = True .CommandTex

我试图使用以下代码从MS Access数据库中存储的参数化查询中获取参数名称:

Dim cmd As New ADODB.Command
Dim cnn As ADODB.Connection

Set cnn = CurrentProject.Connection

With cmd
    .ActiveConnection = cnn
    .CommandType = adCmdStoredProc
    .NamedParameters = True
    .CommandText = "nameOfParameterizedQuery"
    .Parameters.Refresh
End With

......
但是,它不起作用,因为参数集合仍然为空。我尝试将参数定义为在SQL查询中的SELECT语句之前添加以下代码:

PARAMETERS [parameter1] Datatype, [parameter2] Datatype .... ;
SELECT ....
但我没有成功。我读到Microsoft Access ODBC和OLE DB驱动程序目前不支持自动参数填充

这是真的吗?有没有办法使用ADO从MS Access数据库中的参数化查询中获取参数名称


提前感谢。

是的,可以使用ADODB执行此操作。您只需对VB代码进行一些小的编辑(见下文):


您可能还喜欢:


我希望这会有所帮助。

是的,使用ADODB可以做到这一点。您只需对VB代码进行一些小的编辑(见下文):


您可能还喜欢:


我希望这会有所帮助。

我知道,但我习惯使用ADO,我希望保持这种方式,因为从我的角度来看,它使将来迁移到另一个数据库更容易。我知道,但我习惯使用ADO,我希望保持这种方式,因为从我的角度来看,它使将来迁移到另一个数据库更容易。
Dim cmd as New ADODB.Command
Dim cnn as New ADODB.Connection

cnn.Provider = "blah"
cnn.Open = "blah;blah"

cmd.ActiveConnection = cnn
cmd.CommandText = "NameOfParameterizedQuery"
cmd.Parameters.Append cmd.CreateParameter(, adDate, adParamInput, Value:=#6/1/17#)

Range("A1").CopyFromRecordset Cmd.Execute

cnn.Close
Set cmd = nothing
Set cnn = nothing