はじめまして。
[WinXPPro],[VB6],[SQLサーバー2000],[Access2003]にて開発を行っています。
クライアント側PCからSQLサーバに接続してデータを取得し、ローカルのmdbファイルに書き込む制御をVBのプログラム上で行いたいと思っています。
件数が多い為、mdbへの書込みを1件ずつループさせると時間がかかってしまいます。
そこでmdbに一括で書き込む方法などがありましたらアドバイスお願いします。
丸ごとコピーするのであれば、
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件づつループしたほうが確実な場合もあるでしょうね。
さしあたり、DTS(SQL Server データ変換サービス)を試してみるとか。
http://www.microsoft.com/japan/SQL/evaluation/explain/dts.asp
http://www.sqlpassj.org/bunkakai/dba/default.aspx
ありがとうございます。
2つ目のDAOを使って丸ごとコピーすることができました。
もうひとつ試してみたいことがあるのですが、SQLServerで2つ以上のテーブルを結合するSQL文を作成し、
そのデータをMDBにコピーする事は可能でしょうか?
可能ですよ。
SQLの構文はJetSQLのものになるので、
AccessのクエリーでJOINしてみてSQLビューでSQL文を確認すれば、
判りやすいかと思います。
ありがとうございました。
おかげさまでDAOの便利な使い方を知ることができました。
追伸
結合の方も無事できました。
ツイート | ![]() |