2

VBA の組み込み SQL を使用して SQL データベースにアクセスしようとしています。問題は、アクセスしたいものの条件を定義することです(ID > @Identifie問題の原因となっている部分です)。コードを実行すると、 Must declare the scalar variable が表示されます@Identifie。ただし、ローカル ウィンドウに移動すると、@Identify が正しく宣言され、セル K6 に割り当てた値が含まれています。@Identifieさらに、条件 ( ) を特定の値に置き換えるとID > @Identifie、コードは完全に実行されるため、他のエラーは発生しません。私の問題はappendメソッドにあるようですが、何が間違っているのかわかりません。

これが私のコードです:

(この投稿では接続文字列を削除しましたが、これは明らかに問題ではありません):

Option Explicit
Option Base 1

Sub LoadData()

Application.ScreenUpdating = False

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim cmd As New ADODB.Command

Dim lastID As Double

Dim parametre As New ADODB.Parameter

Dim Last_total_ID As Double

Last_total_ID = ActiveWorkbook.Worksheets("Consolidated").Range("K6").Value

cn.ConnectionString = ""
cn.Open

Set parametre = cmd.CreateParameter(Name:="@Identifie", Type:=adDouble, Direction:=adParamInput)

parametre.Value = Last_total_ID

cmd.Parameters.Append parametre

cmd.ActiveConnection = cn

cmd.CommandText = "Select ID, Issuer,LaunchDate,SettleDate,CADAmount,Description,Price,Currency, Maturity,IssuerID, Coupon FROM dbo.tblHistoricalIssuanceStats WHERE (IsProvy = 1) AND (ID > @Identifie)"

Set rs = cmd.Execute
4

1 に答える 1

0

なぜだめですか:

cmd.CommandText = "Select ID, Issuer,LaunchDate,SettleDate,CADAmount,Description,Price,Currency, Maturity,IssuerID, Coupon FROM dbo.tblHistoricalIssuanceStats WHERE (IsProvy = 1) AND (ID > " & Last_total_ID & ");"

ADODB パラメータを使用する必要はないと思います。

于 2015-07-23T21:11:39.103 に答える