1

パススルークエリを使用してSQLServerテーブルからMSAccessにデータを取得することしかできないようです。しかし、他の方法はどうですか?AccessテーブルからSQLサーバーテーブルへ。

高性能が必要な場合、MS Access内からのオプションは何ですか?
(リンクされたテーブルに追加する追加クエリを持つ通常のアプローチは、単に遅すぎます

パススルークエリでは、MS Accessテーブルまたはクエリを参照できないため、INSERTINTOステートメントが機能しません。VBAを介した回避策はありますか?

4

2 に答える 2

0

パススルークエリでOPENROWSETを使用できます。

SELECT id,
       atext
INTO   anewtable
FROM   OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                  'z:\docs\test.accdb'; 'admin';'',table1); 

これらのオプションの一部またはすべてが必要になる場合があります。

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',
     N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', 
     N'DynamicParameters', 1
GO

私はそれがこれ以上速くなるとは思えません。

于 2012-10-20T17:12:31.390 に答える
0

Accessでは、マクロを使用して、SetValueを使用してパススルークエリ定義を動的に作成することができます(これは現在SetPropertyと呼ばれていると思います)。基本的に、既存のパススルークエリのクエリ定義を更新してから実行できます。私は一度これをしました、そしてそれはずっと速くなりました、しかしそれはずっと前でした。クエリを作成するためにテーブルを循環するVBがあった可能性があります。

于 2016-03-31T14:11:32.037 に答える