我正在尝试使用以下代码从存储在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数据库中的参数化查询中获取参数名称?
提前致谢。
答案 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
我希望有所帮助。