- ベストアンサー
他DBから検索したデータをAcceessの一覧表へ
Acceess2007でシステムを作成しています。 他DBから検索したデータを一覧表に表示させたいのですが、ふつうの帳票フォームではリンクしていないので、表示できないのでしょうか? また、MSFlexGridを使用するとしたら、MSFlexGridのオブジェクトはどうやったら取り込めるでしょうか? デザイン画面の「ActiveXコントロール」で探しても見当たらず、よくわかりません。 基本的なことで申し訳ありませんが、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Oracleなど外部のデータベースに接続する場合は ADOによる接続の簡単な例 http://www.happy2-island.com/access/gogo03/capter00403.shtml あるいは、DSNを使わずにクエリを実行する。 http://accesskid.wordpress.com/2010/10/21/dsn%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%9A%E3%81%ABoracle%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80sql/ あるいは、ODBCリンクテーブル以外に、 パススルークエリを使う、などいろいろです。 定義済みのパススルークエリ、あるいは コードによるパススルークエリの実行 など。 接続文字列については以下にあります。 http://hp.vector.co.jp/authors/VA014436/prg_memo/database/all/004.html#Oracle データ量によるサーバーへの負担、トラフィックなどを考慮して 選択するようにします。 一般的には、ADOによりレコードセットを 取得し、フォームに表示するというのが リンク以外の方法では、と思います。
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
データがどのようなものかわかりませんが、 MSFlexGridなどを使いたいというのであれば データが階層構造なのでしょうか。 現在の開発環境がAccessのみならばVisual Studio などで提供しているコントロールは使えません。 階層構造のデータをVisualに表示しようと思えば TreeViewコントロールを使用する、という方法も あります。 TreeView、またはListとTreeViewを組み合わせて 階層構造のデータを表示し、TreeViewのそれぞれの ノードで一番下のノードをクリックしたときに 最終データをフォームのコントロールに表示 する、ということも出来ます。 TreeViewへのデータのセットはコードでテーブル あるいはクエリの結果セットを指定します。 ただ、 >臨機応変に対応できるものがよいのですが。 ということであれば、データの持ち方、 コーディングを工夫しないと臨機応変 というわけにはいかないかもしれません。 Visual Studioなどで提供しているコントロールは ライセンスの問題もあります。もしAccess2007で 使用できるサードパーティ社のコントロールが あれば別ですが。 と、このような感じですが。
- piroin654
- ベストアンサー率75% (692/917)
他のDBがAccessあるいはExcelなどならばリンクする 方法もあります。検索結果のデータの持ち方 が書いてないので一概に言えませんが、 テーブルあるいはクエリとして取り込んでいる場合 は帳票フォームのレコードソースにすればフォームに 表示できます。 なお、MSFlexGrid はAccessで使用できるコントロールでは なく、Visual Basi で使用できるコントロールです。
お礼
piroin654さん: 早速のご回答どうもありがとうございました。 Accessで、MSFlexGridのようなものと使用するとしたら、FlexGrid8.0とかになるのですかね。 DBはAccessやOracle等様々ですので、臨機応変に対応できるものがよいのですが。
お礼
piroin654さん: いろいろとありがとうございます。 残念ながら、現在の開発環境はAccessのみです。 今のところはそんな複雑なことではなく、OracleやSQLServer等から取得したデータを フォームの一覧表に表示させたいだけなので、取得したデータは一旦配列変数か何かに格納しておいて、 表にセットできればと考えています。 普段はフォームとリンクしているAccessDB使用していますので、普通に帳票フォームを使用していますが、AccessDBとリンクさせない(レコードソースとして連結させない)場合に、どうやって一覧表を作成するのかが分かりません。 基本的なことですいませんが、よろしくお願いします。