18

SQL Server にリンクされたすべてのテーブルを含む MS Access アプリケーションを使用しているため、MS Access VBA コードまたはクエリでこれらのテーブルを非常に簡単に操作し、[Customers].

また、SQL Serversp_CopyDataには、VBA コードから呼び出す必要があるストアド プロシージャが呼び出されています。SQL Serverへの新しい接続を作成せずにそれを行うにはどうすればよいですか(テーブルにアクセスできるため、すでにどこかに接続しています!?)

それとも無理ですか?どんな助けにも感謝します。ありがとう!

4

4 に答える 4

29

The right answer found out, it should be like:

Dim qdef As DAO.QueryDef
Set qdef = CurrentDb.CreateQueryDef("")
qdef.Connect = CurrentDb.TableDefs("[ANY LINKED TABLE TO MS SQL SERVER]").Connect
qdef.SQL = "EXEC sp_CopyData"
qdef.ReturnsRecords = False  ''avoid 3065 error
qdef.Execute
于 2013-10-06T21:04:51.933 に答える
15

パススルー クエリを作成すると、T-SQL を実行する必要があるときはいつでも、アプリケーション全体でこれを使用できます。

コードは次のようになります。

With CurrentDb.QueryDefs("qPass")
  .SQL = "exec sp_copydata"
  .ReturnsRecords = False  ''avoid 3065 error
  .Execute
End With
于 2014-08-18T00:50:42.303 に答える
4

試す:

CurrentProject.Connection.Execute "EXEC sp_CopyData"

参考文献: http://msdn.microsoft.com/en-us/library/office/ff821478(v=office.14).aspx

于 2013-09-14T10:33:35.963 に答える