- 締切済み
Accessで2つのテーブルを紐づけできるフォーム
Access初心者です。 仕事で使う経理業務用のデータベースを作ることになったのですが、要求された作業をするためのフォーム画面づくりについて困っています。 【実現したいこと】 ・日々の「売上テーブル」と「口座入金テーブル」を紐づけさせる作業をできるようにしたい。 【要件】 ・日々、売上を銀行口座に入金しています。基本は毎日入金していますが、2日分以上の売上をまとめて入金することもあり得ます。 ・Access上で両者を紐づけさせておき、口座入金に対して、入金の明細として売上テーブルを呼び出せるようにしたいのです。 ・以上のことから、「口座入金テーブル」と「売上テーブル」は一対多の関係です。 【理想形のイメージ】 フォーム画面に「口座入金テーブル」と「売上テーブル」を両方表示させて、 ・「売上テーブル」のレコードを選択する(複数選択可) ↓ ・対応する「口座入金テーブル」のレコードを選択する ↓ ・結果、「売上テーブル」に「口座入金ID(口座入金テーブルの主キー)」の値が入力されて、両者が紐づく …というイメージでおります。 今のところ、フォーム上で『「売上テーブル」のレコードひとつひとつに「口座入金ID」の数字を手入力する』ということしかできておらず、 できれば手入力をしなくて済むようにしたいと考えています。 これを実現するためにはどうしたらよいでしょうか? VBAを活用しないと実現できないのかな?と考えて勉強をはじめましたが、 まだまだ道のりは長いようで、具体的にどのようにすればよいのかは全然見当がついていません。 アドバイス頂けると大変助かります。 すみませんが、どうぞよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- chayamati
- ベストアンサー率41% (260/624)
>・「口座入金テーブル」と「売上テーブル」は一対多の関係です。 Accessではこの紐付を「一対多」の参照整合性のリレーションシップと 呼びます。この2つの共通項目はおそらく取引先でしょう 一側の「口座入金」テーブルの共通項目はユニーク(重複なし)に 定義します。 日々発生する「口座入金」テーブルの取引先をユニークには出来ません その為別のユニークなフィールドをID(オートナンバ型)を追加します。 このIDと紐付けするフィールド「口座入金ID」(長整数型)を 「売上テーブル」に追加します >「口座入金テーブル」と「売上テーブル」を両方表示させて この二つのテーブルの情報は日々同時に発生する(取引は全て代引き)するのであればよいのですが 「口座入金テーブル」が無ければ、多側の「売上テーブル」は入力出来ません そのため売上テーブルは口座入金テーブルに情報が入るまで入力を 保留することになります ここでも一工夫が必要なことはお分かり頂けますね 回答No.2の補足依頼にお答えください。
- kkkkkm
- ベストアンサー率66% (1733/2603)
- chayamati
- ベストアンサー率41% (260/624)
今日は テーブルを紐づけはリレーションシップでやります。 一対多の関係です。 これも必須要件です ★顧客テーブルを追加して下さい。 ★「口座入金テーブル」と「売上テーブル」と「顧客テーブル」の フィールドを補足願います。 的の得た回答が得られます。
- tamu1129
- ベストアンサー率58% (1301/2234)
>VBAを活用しないと実現できないのかな? つまり、口座を管理する為のテーブルと入金テーブルと2つのテーブルが作成されていて、2つのテーブルのリレーションシップは作成できているって事で良いですか? そこまで出来ていると仮定するなら メインフォームを口座テーブルで作成し、サブフォームに売上げテーブルを配置させてやれば良いですよ メインフォームは単票形式 サブフォームは帳票形式で サブフォームはメインフォームに連携するようになるので、サブフォームに入っているデータを入力すれば、メインフォームに表示されている口座に入金しているって事になるのでサブフォームでどこの口座に対してのデータなのかいち入力する必要はありません 入金する日にちと入金名目、入金金額あたりを入力すれば良い事になります 複数の口座を持っている場合、メインフォームの口座の情報を切り替える事で、サブフォームのデータも、メインフォームに関する物に切り替わるので、メインフォームとサブフォームの関係で成り立つ物を作成させればいいですね