初めて質問させて頂きます。
自己流で開発して来ましたので、表現などで的を得ない部分もあると思いますが、
どうぞ宜しくお願い致します。
以前アクセスADPで作成したシステムをSQLServer(2008)へODBCで接続するよう
accdb(アクセス2013)に移行・修正しているところです。
下記はaccdbファイルのレポート(開く時)に記述した一部です。
ストアドプロシージャは期間を指定して該当するデータを
(SELECT … INTO …)でtempdb内に書き出すものです。
実際にtempdb内にはテーブルが作成されているのですが(①の部分)、
それをレポートのレコードセットに代入しようとすると(②の部分)、
「この機能はADPのみで有効です。」と表示されてしまいます。
Me.RecordSource = "SELECT * FROM " & ワークテーブル名 & " IN …
IN以降の記述でtempdbを指定するような方法を見かけたのですが、うまくいきません。
tempdbに作成した一時テーブルをレポートのレコードセットにする方法について、
ご教示ください。宜しくお願い致します。
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
cnn.ConnectionString = "Driver={SQL Server};Server=サーバーIPアドレス;Database=データベース名"
cnn.Open
cnn.CursorLocation = adUseClient
Set cmd.ActiveConnection = cnn
With cmd
.CommandText = ストアドプロシージャ名
.CommandType = adCmdStoredProc
.Parameters.Refresh
.Parameters(1) = 入力パラメータ_1(ワークテーブル名)
.Parameters(2) = 入力パラメータ_2(年月日_自)
.Parameters(3) = 入力パラメータ_3(年月日_至)
End With
Set rst = cmd.Execute ←① この時点で tempdb内にテーブルが存在するのですが
Set Me.Recordset = rst ←②「この機能はADPのみで有効です。」と表示されます。
Set rst = Nothing
Set cmd = Nothing
Set cnn = Nothing