1

Access 2007 を使用して、レコードセットを返す 1 つの入力パラメーターでストアド プロシージャを呼び出したいと考えています。

ADODB を使用すると、接続文字列を除けば非常に簡単です。常に正しいサーバーとデータベースを指す特定のテーブルからサーバーとデータベースの名前を取得できるようにしたいと考えています。(100 ほどのリンクされたテーブルを再リンクすることにより、テストのために時々開発データベースに再接続します。)

全体を解析せずにテーブル定義からサーバーとデータベース名を取得する方法はありますか? 物件はありますか?私はまだ1つを見つけていません....

最後のクエリは非常に単純です。EXEC sp_DeleteProjects N'12,24,54'プロジェクト 12、24、および 54 を削除し、さまざまな子テーブル エントリの削除されたレコード数を含むレコードセット (単一行) を返します。

4

1 に答える 1

6

SQL Server データベースを指す Access リンク テーブルが既にある場合は、次の VBA コードに示すように、その.Connect文字列をオブジェクトと共に使用するだけで、ストアド プロシージャを実行できます。DAO.QueryDef

Sub CallSP()
Dim qdf As DAO.QueryDef, rst As DAO.Recordset
Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("dbo_MyTable").Connect
qdf.SQL = "EXEC dbo.MyStoredProcedure"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
Debug.Print rst(0).Value
rst.Close
Set rst = Nothing
Set qdf = Nothing
End Sub
于 2013-09-07T18:37:00.930 に答える