VBA ADODB - 从参数化查询中获取参数

时间:2016-04-19 16:13:47

标签: vba 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
    .CommandText = "nameOfParameterizedQuery"
    .Parameters.Refresh
End With

......

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

PARAMETERS [parameter1] Datatype, [parameter2] Datatype .... ;
SELECT ....

但我没有成功。我读过Microsoft Access ODBC和OLE DB驱动程序目前不支持自动参数填充。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

<小时/> 你可能也喜欢:https://support.microsoft.com/en-us/help/181734/how-to-invoke-a-parameterized-ado-query-using-vba-c-java

我希望有所帮助。