mdbに複数レコードを一括で書き込むには?

解決


一猫  2005-08-23 01:57:06  No: 91696

はじめまして。
[WinXPPro],[VB6],[SQLサーバー2000],[Access2003]にて開発を行っています。

クライアント側PCからSQLサーバに接続してデータを取得し、ローカルのmdbファイルに書き込む制御をVBのプログラム上で行いたいと思っています。

件数が多い為、mdbへの書込みを1件ずつループさせると時間がかかってしまいます。
そこでmdbに一括で書き込む方法などがありましたらアドバイスお願いします。


もげ  2005-08-23 17:29:59  No: 91697

丸ごとコピーするのであれば、
MDB上でSQLServerへのリンクテーブルを作成し、
SELECT * INTO [MDBテーブル] FROM [SQLServerテーブル]
とか、
リンクを作成しなくても、DAOであれば、
SELECT * INTO [MDBテーブル] 
FROM
[odbc;Driver=sql server;server=xx;database=xxx;uid=xxx;pwd=xxx].[SQLServerテーブル]
というSQL文を発行する方法があります。
ただし、データのチェックやフィールド単位でのデータの加工や、
「レコードがあったら更新、無ければINSERT」
のようなことをやるのであれば、
結果的に1件づつループしたほうが確実な場合もあるでしょうね。


魔界の仮面弁士  2005-08-23 18:17:12  No: 91698

さしあたり、DTS(SQL Server データ変換サービス)を試してみるとか。
http://www.microsoft.com/japan/SQL/evaluation/explain/dts.asp
http://www.sqlpassj.org/bunkakai/dba/default.aspx


一猫  2005-08-23 21:30:37  No: 91699

ありがとうございます。
2つ目のDAOを使って丸ごとコピーすることができました。

もうひとつ試してみたいことがあるのですが、SQLServerで2つ以上のテーブルを結合するSQL文を作成し、
そのデータをMDBにコピーする事は可能でしょうか?


もげ  2005-08-23 23:54:02  No: 91700

可能ですよ。
SQLの構文はJetSQLのものになるので、
AccessのクエリーでJOINしてみてSQLビューでSQL文を確認すれば、
判りやすいかと思います。


一猫  2005-08-24 01:26:31  No: 91701

ありがとうございました。

おかげさまでDAOの便利な使い方を知ることができました。


一猫  2005-08-24 01:30:13  No: 91702

追伸
結合の方も無事できました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加