ワークテーブルからDBサーバーへの更新について

このQ&Aのポイント
  • Access2003+PostgreSQLにて販売管理システムを構築しています。レコードの更新時には、ワークテーブルを使用して値を変更し、サーバーにデータを戻す処理を行いたいと考えています。
  • サーバーからレコードをコピーする際はODBC接続&ADOを使用し、サーバーのレコードセットをワークテーブルにINSERTしています。しかし、ワークテーブルからサーバーにレコードを戻す際には、どの方法で接続すればよいか分かりません。
  • スマートな方法を知っている方は、ワークテーブルとサーバーの接続方法について教えていただけますか。
回答を見る
  • ベストアンサー

ワークテーブル(ローカル)からDBサーバーへの更新について

Access2003+PostgreSQLにて販売管理システムを構築しています。 レコードを見る・更新する時はサーバーのレコードを ワークテーブル(ローカルのmdbファイル内のテーブル)にコピーし 値を変更後、ローカルからサーバーにデータを戻す、といった処理をしたいと考えています。 サーバーからレコードをコピーする際は、ODBC接続&ADOにて サーバーのレコードを一旦レコードセットに格納し 「CurrentProject.Connection.Execute SQL文」で ワークテーブルにINSERTしています。 ここで質問なのが、ワークテーブルからサーバーにレコードを戻す際は ワークテーブル・サーバーへはそれぞれどの方法で接続すればいいでしょうか。 例えばサーバーへODBC&ADOで接続した場合、ワークテーブルの取扱方法(接続方法)が分かりません。 サーバー:ADO、ワーク:DAO、みたいな事するのでしょうか。 スマートな方法がお分かりの方は教えて下さい。 宜しくお願い申し上げます。

  • SOU48
  • お礼率35% (51/144)

質問者が選んだベストアンサー

  • ベストアンサー
  • Dodonpa2
  • ベストアンサー率82% (19/23)
回答No.1

こんにちは。 >例えばサーバーへODBC&ADOで接続した場合、 >ワークテーブルの取扱方法(接続方法)が分かりません。 素のPostgreSQLからAccessへの接続する方法はありません。ですから、 基本的には クライアントのAccessからPostgreSQLに接続することになります。 したがって、Jet-SQLの機能でPostgreSQL上のテーブルを外部テーブルとして 処理します。 で、どうするかですが、リンクテーブルが使えなくなってしまったので SQLのIN句を使います。 PostgreSQLからAccessにデータを渡すのは INSERT INTO jettbl (f1, f2, f3) SELECT f1, f2, f3 FROM [ODBC;DRIVER=PostgreSQL35W;SERVER=srv1;DATABASE=db1;UID=xxx;PWD=yyy;].pgtbl; こんな感じでできます。これを参考にされればこの逆は想像できませんか。

関連するQ&A

  • フォーム上にDBの内容を一覧表示したい。

    はじめまして。宜しくお願いします。 現在Access2002、SQLサーバーをつかってタイトルのことを実現しようと思っています。 現在やっていることは、SQLサーバーのあるテーブルから、条件に合うものだけを取り出して、ワークテーブルに一時格納します。 そしてそのワークテーブルに連結しているフォームを、表示したいフォームの上にサブフォームとして表示しています。 つまり一覧表示をADOではなくDAOを使ってやっています。 (ADOでSQL文をつかってループをまわしながら表示する方法が分からなかったため。。) しかし、DAOを使うと検索するDBのが大きいとレスポンスが下がることや、表示するカラムが変わるごとに対応するワークテーブルを作成しなければならないと思い、やはりADOを使おうと思っています。 VBScriptをつかってWEB上に表示するときなどは、レコードセットから一件ずつ 読み出して、ループをまわしながら表示していけばよいのですが、 VBでのそのような方法が見つからず、行き詰っております。 そもそも、VBではそのようなことはできるのでしょうか? 初心者の質問で申し訳ございませんが、お気づきの方が居られましたら ご教授ください。

  • 環境:SQL-Server2005

    環境:SQL-Server2005 アプリケーション:Access2003 接続:DAO3.6 AccessよりSQL-Serverのテーブル、ローカルテーブルへ接続した場合、ODBC接続が 接続不可となる場合があります。 エラーとなりますが、エラー状態のまま処理を再開出来たりする場合がありあます。 常時発生する事象ではありませんが、発生率は低いですが、何か考えられる原因がございますでしょうか。

  • ODBCリンクテーブルをローカル」テブルにするには

    Access2002でODBCリンクテーブルがあるのですが、このテーブルをリンクを外した状態(ローカルテーブル)としてインポート若しくはエクスポート(コピー)したいのですが、方法がわかりません。 ご教授いただけないでしょうか? 素人なので、宜しくお願い申し上げます。

  • Webサーバー経由でローカルにあるPostgreSQLサーバーにAccess + ODBCで接続する方法

    現在公開しているWEBサーバーがあり、元々は同じサーバーにPostgreSQLのデーターベースサーバーも入れてありました。 最近WEBサーバーとローカル接続になる新たなサーバーを用意し、DBはそちらに移しました。 両サーバーとも設置場所は社外のデータセンターです。 これまで社内のWindowsクライアントから、Access + ODBCでDBの操作をしていたのですが、DBサーバーを外から見えない所に置いたため、接続が出来なくなってしまいました。 社内からはどうしてもAccessを使用したいため、このDBサーバーに、公開しているWEBサーバー経由でODBC接続できるような方法を教えていただけますでしょうか。 環境は下記の通りです。 ・WEBサーバー Redhat Linux 7.3 ・DBサーバー Redhat Linux 7.3 PostgreSQL 7.2.8 ・Windowsクライアント Windos 2000 Pro , Windows XP Home/Pro お手数おかけしますが、よろしくお願い致します。

  • AccessとDB2のテーブルリンクで…

    お世話になります。 ある2台のサーバーが社内にあります。 その2台のサーバーにはそれぞれ、IBMのDB2というデータベースを使用していて、それぞれのDB2内には同じデータベース名(テーブル)が存在します。 現在、サーバーAから新サーバーBに社内WEBシステムの移行を行っていて、Access2000のテーブルリンクを使って、サーバーAにあるDB2のデータベースAのテーブルとリンクをしています。 その際、テーブルリンクをする為にWindows2000の「ODBC データソース アドミニストレータ」のシステムDSNで、「IBM DB2 ODBC DRIVER」を使用してデータベースAにODBCを介して接続しております。 ですが、サーバーA側と同じ名前の、新サーバーBのデータベースAにODBCを介してテーブルリンクを繋ごうとすると、サーバーAと新サーバーBのデータベースAという名前が同じだからか、システムデータソースを追加しても、新サーバーB側のデータベースAに接続が出来ません。 この場合、新サーバーBのデータベースAの名前を同じものではなく、別の名前に変更した方が宜しいのでしょうか。 質問内容に不足な点がございましたら、内容を再度追加致します。 どうぞご教授宜しくお願いします。

  • テーブル内のレコードを別のテーブルに移す良い方法を教えてください

    SQLサーバー7.0(ADO)とAccess97のVBAでアプリケーションの開発を行っております。SQLサーバー7.0(サーバー側)にあるテーブルの中身(レコード全件)をAccess97(ローカル)にあるテーブル(テーブル名とその中のフィールド名は全く同じだが中身はからっぽ)にまとめて移しかえる良い方法があれば教えてください。いま私はフォームオープンイベントでフィールドとレコードをループでまわして移しかえているのですが、テーブル数も多いため記述も長くなりますし、何よりもパフォーマンスが良くありません。テーブル単位で中身を別のテーブルに移す方法などがあれば是非教えてください。 (例) SQLサーバー(ホスト側)---テーブル名「T_社員マスター」フィールド数100項目、レコード数500件 ↓ ↓ フォームオープン時にそのまま移しかえたい ↓ ↓ Access97(端末側)-------テーブル名「T_社員マスター」フィールド数100項目、レコード数0件 よろしくお願いします。

  • ローカルマシンDBへのODBC接続

    宜しくお願いします。 自分のPCにORACLE 10gをインストールして、 ODBC接続しようとしていますが、上手くいきません。 ローカルDBへのODBC接続はできないのでしょうか? もし、何か方法があれば、教えてください。 宜しくお願いします。

  • VB5+DAO3.5でSQLサーバーに接続方法

    実行環境はNT4.0、DAOは3.5(3.51ではない) VB5でSQLサーバーに接続したいのですが、 できるのでしょうか? できればODBC経由でなく直に繋ぎたいのですが、むりならODBC経由でもいいです。 サンプルコードをお願いいたします。 1)DB接続、2)SQL文発行&レコードセット取得 位まであればありがたいです。 上記が無理の場合RDOでの使用方法があれば お願いいたします。

  • VCからのDBアクセス方法

    Microsoft Visual C++ 6.0を使用しています。 VCからDBへのアクセス方法を調べています。 ADO,DAO,ODBC,JET,OLE,などがありますが ODBCについては、動作確認できましたが、その他のアクセス方法については 検証できません。 各、アクセス方法の使用を詳しく知りたいです。 一番効率が良いのは、どのアクセス方法なのでしょうか? 出来ればサンプルなど載っているサイトを教えて頂きたいです。 よろしくお願いします。

  • VBからOracleへの接続方法

    VBからOracleへの接続方法として、ADO、DAO、ODBC、oo4oなど色々と方法があるようですが、どれが一番いいんでしょうか。 oo4oは別途インストールが必要でしょうか。 環境はまっさらなXPから、Excelマクロでサーバ上のOrcleに接続します。