- ベストアンサー
パススルークエリの使い方
Windows server 2003 + SQL server 2000の環境にあるDBがあります。 同じネットワーク上のWindows XP Pro + Access2000のPCからそのサーバのDBへデータをINSERTするのにはパススルークエリを使えという話になりました。 そのサーバへODBC接続の設定はできています。 パススルークエリの情報が乏しく、どのようにしたらよいのかちょっとわかりません。 どなたかご教授よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。やり方はわかったようですので、補足ですが、 パススルークエリは丸ごとSQL Serverにクエリを投げるので、 INSERT INTO (SQL Serverのテーブル) SELECT * FROM (Accessのテーブル) みたいな使い方はできません。 基本的にはパラメータも渡すことができないので、実行の都度QueryDefのSQLを書き換えてExecuteするような使い方になるかと思います。 今回は1レコードだけということなので、特に問題はないと思いますが、複数レコードをINSERTするのだったら、 INSERT INTO TABLE VALUES ('A','B','C'); INSERT INTO TABLE VALUES ('D','E','F'); INSERT INTO TABLE VALUES ('G','H','I'); と並べるよりは INSERT INTO TABLE SELECT 'A','B','C' UNION ALL SELECT 'D','E','F' UNION ALL SELECT 'G','H','I' とやると1ステートメントでINSERTできるので少し速いはずです。
その他の回答 (2)
- khazad-lefty
- ベストアンサー率44% (296/668)
本当にパススルークエリが使えるのか疑問なのでいくつか確認。 INSERTというのはどこから(どこへ…はSQLServerなんですよね)? 例) ・Access2000のフォームに入っているものを ・Access2000のmdb上のテーブルから それと、一度にInsertするのはなんレコード?
- jamshid6
- ベストアンサー率88% (591/669)
この説明がわかりやすいのではないですか? INSERTでも同様にできるはずです。 http://www.atmarkit.co.jp/fwin2k/win2ktips/347dbquery/dbquery.html
補足
ありがとうございます。 また、こちらでも「Access開発実践ノウハウ」というパススルークエリについて詳しく書いている本を見つけました。
補足
どこから:同じネットワーク上にあるWindowsXP PC + Access2000のフォームに入力した1レコードを新規で追加。 どこへ:SQL Server 以上、よろしくお願いします。