2016-04-19 130 views
1

我正嘗試使用此代碼存儲在MS Access數據庫的參數化查詢獲取參數名:因爲參數集VBA ADODB - 從參數化查詢獲取參數

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 

...... 

但是它doesn't工作,仍然空着。我曾嘗試在SQL查詢中的SELECT語句之前添加以下代碼來定義參數,如下所示:

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

但是我沒有成功。我讀過Microsoft Access ODBC和OLE DB驅動程序目前不支持自動參數填充。

這是真的嗎?有沒有辦法使用ADO從MS Access數據庫中的參數化查詢中獲取參數名稱?

在此先感謝。

+0

我知道,但我習慣性地使用ADO,並且我想保持這種方式,因爲從我的角度來看,它使未來遷移到其他數據庫變得更加容易。 – Fiz

回答

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

我希望幫助。