- ベストアンサー
access2003で桐の表引きのようなシステムはありますか?
access2003のフォームを使いデータ入力を行えるものを作りたいのですが、日本語データベースソフト桐の表引きのように他のテーブルからデータをひっぱってくるようなシステムはありますか? accessは全くの初心者で質問の内容も伝わりにくいかもしれませんがよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
IDをコンボボックスにすべきです。 コンボボックスの設定値 値集合ソース:SELECT ID,名前,住所 FROM テーブル1 列数:3 列幅:1;0;0 各列の幅の並び、最初の列(ID)だけ0以外を指定 更新後処理:イベントプロシージャ(下記参照) Sub ID_AfterUpdate() ※"ID"はフォーム上のコンボボックスの名前 Me.名前 = Me.ID.Column(1) 'コンボの2列目=名前 Me.住所 = Me.ID.Column(2) 'コンボの3列目=住所 End Sub コンボボックスにはID、名前、住所の3列がありますが、列幅の指定が 2列目、3列目が0なので、IDしか見えません。見えませんが内容は 入っていますので、Columnプロパティで値を引き出すことができます。 もし、3列とも見せたいなら、列幅での指定値を0以外にし、更に リスト幅を「自動」→数値にします。見栄えはリスト幅との兼ね合い から試行錯誤して決定してください。
その他の回答 (3)
- gadd3
- ベストアンサー率46% (211/451)
すみません、訂正です。書き忘れました。 >最終目的がわからないのでいいのかどうかわかりませんが、 >表示するだけでいいなら、 は 最終目的がわからないのでいいのかどうかわかりませんが、 表示するだけでいいなら、クエリを一個作って、 それを連結フォームのソースにするだけで終わりです。 でした。
- gadd3
- ベストアンサー率46% (211/451)
(テーブル1がマスタ、テーブル2がトランザクションと仮定して、話をすすめます) 最終目的がわからないのでいいのかどうかわかりませんが、 表示するだけでいいなら、 まず、テーブル2の名前と住所のフィールドは、テーブル1と 重複してしまうので、正規化の観点から削除します。 で、クエリのデザインビューにて、 テーブル1のIDとテーブル2のIDをリレーションさせます。 (普通に内部結合で可。ドラッグするだけ。) で、同じくそのままデザインビューにて 表示させるフィールドをデザイングリッドにドラッグするわけですが、 その際のフィールドは・・・、最低限、以下の、 ・テーブル2のID(入力) ・テーブル1の名前(表示のみ) ・テーブル1の住所(表示のみ) の3つ・・・、というかたちにすれば、 IDを入力すれば、テーブル1の名前と住所を表示することができます。 プログラムコードは要りません。 ただし、『 テーブル2(トランザクション)のほうに、どうしても 「名前」と「住所」を転記しないとまずい!』ということなら、 他の方のご回答のように、VBAなどを使って転記などを行えばよいと 思いますけど・・・。 トランザクション側に名前と住所の転記が本当に必要なんでしょうか? (集計を高速にしたいのかしら?)
お礼
最終的にはテーブル2の内容をレポートで印刷することが目的です。accessは始めたばかりなので、発想が貧困なためテーブル2に名前と住所を転記する方法以外思いつきませんでした。 今回紹介していただいた方法も試して実際の動きを見てみたいと思います。 ご回答ありがとうございました。
- temtecomai2
- ベストアンサー率61% (656/1071)
桐をまったく知らないので外していたらごめんなさい。 コンボボックスの選択肢の一覧をマスター テーブルから引っ張ってきたいってことですか? なら平積みされている入門本や入門サイトでサンプルを見ることができると思います。簡単ですから。
お礼
迅速なご回答ありがとうございます。できれば下記のようにできればうれしいです。 テーブル1 ID 名前 住所 テーブル2 ID 名前 住所 フィールド4 フィールド5… ・テーブル1はID、名前、住所が入力してあるテーブル ・テーブル2は空のテーブル テーブル2を元にフォームを作成し、IDはテキストボックスにし、フォームでIDを入力しコントロールを名前に移動するとテーブル1よりフォームで入力したIDの名前をひっぱてくる(住所も同様)ようにしたいです。 いろいろ注文をつけてすみません。 質問の内容が伝わるようでしたら、ご回答よろしくお願いします。
補足
迅速なご回答ありがとうございます。できれば下記のようにできればうれしいです。 テーブル1 ID 名前 住所 テーブル2 ID 名前 住所 フィールド4 フィールド5… ・テーブル1はID、名前、住所が入力してあるテーブル ・テーブル2は空のテーブル テーブル2を元にフォームを作成し、IDはテキストボックスにし、フォームでIDを入力しコントロールを名前に移動するとテーブル1よりフォームで入力したIDの名前をひっぱてくる(住所も同様)ようにしたいです。 いろいろ注文をつけてすみません。 質問の内容が伝わるようでしたら、ご回答よろしくお願いします。
お礼
ありがとうございます。いろいろな設定を丁寧にわかりやすく説明していただき創作意欲がわきました。 早速試してみたいと思います。