• 締切済み

Accessで2つのテーブルを紐づけできるフォーム

Access初心者です。 仕事で使う経理業務用のデータベースを作ることになったのですが、要求された作業をするためのフォーム画面づくりについて困っています。 【実現したいこと】 ・日々の「売上テーブル」と「口座入金テーブル」を紐づけさせる作業をできるようにしたい。 【要件】 ・日々、売上を銀行口座に入金しています。基本は毎日入金していますが、2日分以上の売上をまとめて入金することもあり得ます。 ・Access上で両者を紐づけさせておき、口座入金に対して、入金の明細として売上テーブルを呼び出せるようにしたいのです。 ・以上のことから、「口座入金テーブル」と「売上テーブル」は一対多の関係です。 【理想形のイメージ】 フォーム画面に「口座入金テーブル」と「売上テーブル」を両方表示させて、 ・「売上テーブル」のレコードを選択する(複数選択可) ↓ ・対応する「口座入金テーブル」のレコードを選択する ↓ ・結果、「売上テーブル」に「口座入金ID(口座入金テーブルの主キー)」の値が入力されて、両者が紐づく …というイメージでおります。 今のところ、フォーム上で『「売上テーブル」のレコードひとつひとつに「口座入金ID」の数字を手入力する』ということしかできておらず、 できれば手入力をしなくて済むようにしたいと考えています。 これを実現するためにはどうしたらよいでしょうか? VBAを活用しないと実現できないのかな?と考えて勉強をはじめましたが、 まだまだ道のりは長いようで、具体的にどのようにすればよいのかは全然見当がついていません。 アドバイス頂けると大変助かります。 すみませんが、どうぞよろしくお願いします。

みんなの回答

  • chayamati
  • ベストアンサー率41% (255/609)
回答No.4

>・「口座入金テーブル」と「売上テーブル」は一対多の関係です。  Accessではこの紐付を「一対多」の参照整合性のリレーションシップと  呼びます。この2つの共通項目はおそらく取引先でしょう 一側の「口座入金」テーブルの共通項目はユニーク(重複なし)に   定義します。   日々発生する「口座入金」テーブルの取引先をユニークには出来ません   その為別のユニークなフィールドをID(オートナンバ型)を追加します。   このIDと紐付けするフィールド「口座入金ID」(長整数型)を   「売上テーブル」に追加します >「口座入金テーブル」と「売上テーブル」を両方表示させて  この二つのテーブルの情報は日々同時に発生する(取引は全て代引き)するのであればよいのですが  「口座入金テーブル」が無ければ、多側の「売上テーブル」は入力出来ません  そのため売上テーブルは口座入金テーブルに情報が入るまで入力を  保留することになります  ここでも一工夫が必要なことはお分かり頂けますね 回答No.2の補足依頼にお答えください。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1624/2466)
回答No.3

添付画像のようなものが作成したいということでしょうか チェックを入れたレコードの口座入金のところに上の口座入金IDを「口座入金ID書き込み」ボタンを押したときに書き込みます。 売上選択合計はチェックしている売上一覧の合計でチェックを入れると自動で加算されます。この値と入金額が一致しないと書き込みは行いません。

全文を見る
すると、全ての回答が全文表示されます。
  • chayamati
  • ベストアンサー率41% (255/609)
回答No.2

今日は  テーブルを紐づけはリレーションシップでやります。  一対多の関係です。  これも必須要件です ★顧客テーブルを追加して下さい。 ★「口座入金テーブル」と「売上テーブル」と「顧客テーブル」の  フィールドを補足願います。  的の得た回答が得られます。

全文を見る
すると、全ての回答が全文表示されます。
  • tamu1129
  • ベストアンサー率58% (1259/2149)
回答No.1

>VBAを活用しないと実現できないのかな? つまり、口座を管理する為のテーブルと入金テーブルと2つのテーブルが作成されていて、2つのテーブルのリレーションシップは作成できているって事で良いですか? そこまで出来ていると仮定するなら メインフォームを口座テーブルで作成し、サブフォームに売上げテーブルを配置させてやれば良いですよ メインフォームは単票形式 サブフォームは帳票形式で サブフォームはメインフォームに連携するようになるので、サブフォームに入っているデータを入力すれば、メインフォームに表示されている口座に入金しているって事になるのでサブフォームでどこの口座に対してのデータなのかいち入力する必要はありません 入金する日にちと入金名目、入金金額あたりを入力すれば良い事になります 複数の口座を持っている場合、メインフォームの口座の情報を切り替える事で、サブフォームのデータも、メインフォームに関する物に切り替わるので、メインフォームとサブフォームの関係で成り立つ物を作成させればいいですね

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Accessフォーム

    Access初心者です。 Accessのフォーム上で、 [都道府県]のコンボボックスで東京都を選んだ場合、 [市区町村]のコンボボックスには「東京都」の市区町村名が選択できるようにしました。 フォームでの入力はきちんと出来るのですが、新しいレコードに入力すると、 前のレコードに入力した項目が消えてしまいます。 (テーブル上には、入力した情報が残っています) 色々試してみましたが、どうしても出来ません。 いったいどうしたらよいのでしょうか。ほとほと困っています。 どうかご教示ください。お願いいたします。

  • アイコンとレコードを紐付けたい。

    アイコンとレコードを紐付けたい。 [やりたいこと(テーマ)] Accessヘルプデータベースの作成と自身以外「主観DBの為」の利用でも困らずに使える環境づくり。 [やりたい事のイメージ] フォームを開くボタンにAccess標準のピクチャ「全34種類」を利用しています。その全34個のアイコンとデータを紐付けたいと思っています。具体的にはAccessヘルプファイルにアイコンを配して、アイコン「全34個」を配したフォーム「Access検索フォーム」を開きます。そして各々のコマンドボタンをクリックすることで紐付いたレコードを表示させる。 [オブジェクト] テーブル:Accessスヘルプテーブル ID:オートナンバー フォーム名:Accessヘルプファイル フォーム名:Access検索フォーム テキストボックス名:テーマ 記述例「重なったフォーム」 テキストボックス名:内容  記述例「データを一覧で表示するフォームを開くボタン」 以上ですが、どの様な方法があるのでしょうか。宜しくお願いします。

  • アクセス・クエリ内のフィールド上での計算式について

    アクセス上には、顧客IDテーブル、売上テーブルと入金テーブルがあります。 (1) 売上テーブル及び入金テーブル上でのIDは、顧客IDテーブルと紐付くようにしています。 (結合プロパティは、顧客IDテーブルの全レコードと売上(入金)テーブルの同じ結合フィールドのレコードだけを含める設定にしています。) (2) 売上(入金)テーブルからクエリでID毎の合計売上額と合計入金額を算出しました。 (3) (2)を基にフィールドに"ビルダー"にて合計売上額-合計入金額として、ID毎の残高を算出しました。 (4) 問題は、(2)のID毎に合計売上額があっても、IDによっては未入金の場合もあり、 その場合、合計入金額を算出するクエリ上ではそのIDは空の状態で"0"表記もされないために、 (3)は、何も表示されません。(即ち、合計売上額100 - 空 = 空)。空ではなくて、ちゃんと空の場合は、0認識出来る方法ってありますでしょうか?

  • Accessでフォームからテーブルへ書き込む

    Access2000 (初心者) フォームからテーブルへ入力したいのですが、レコードソースが違う為入力出来ません。 DLookup("AA", "BB")で違うレコードから抽出出来る様に、違うレコードへ簡単に入力出来ないでしょうか? Me.CC = DLookup("AA", "BB") DLookup("AA", "BB") = Me.CC みたいに・・・

  • Accessのフォームとテーブルについて教えてください。

    Access2003を使用しています。 既存のフォームAにフィールド3個を増やしました。 フォームAはテーブル(1)と連動していました。 追加したフィールドはテーブル(6)のものです。 ところがフォーム上で追加フィールドに入力が出来なくなりました。3フィールドのうち、ひとつはコンボボックスです。表示はされますが確定ができません。 フォームAのSQLステートメントではテーブル(1)・(6)以外にテーブル(2)・(3)・(4)・(5)が結合されています。 フォームAからするとテーブル(2)・(3)・(4)・(5)のデータはIDの名称を見るための参照用です。 テーブル(6)は、追加フィールドのコンボボックスが参照用で、他の2追加フィールドは、フォームから入力してテーブル(6)に反映させたいものです。 テーブル(6)の画面では入力できます。 フォーム上からは入力できません。 設定が何か欠けているからでしょうか? 他の質問では2つのテーブルをひとつのフォームにする場合は、クエリを別に設けた方がいいとなっています。フォームが出来上がっているので、できればクエリを設けずに行いたいのですが、よくない方法でしょうか? 手順なども踏まえて教えていただけると助かります。 よろしくお願いいたします。

  • ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

    フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。 売上テーブル  ID   商品コード  日付    金額   1    G1     20080101  532153  2    G1     20080101  564281  3    G1     20080301  538123  4    J4     20080301  124531  5    J4     20080302  125483 ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型 これを使い、 フォームではまず レコードナンバーを入力画面        ↓ レコード番号を入れると、そのレコードのデーターが画面に表示され、 その画面で修正可能        ↓  保存 ボタンで保存 という流れです。 レコードナンバーはIDを使おうと思っています。 データの量が莫大な為、コンポボックスなどは使えません。 できるだけ、VBAなどは使わずに作りたいです。 よろしくお願い致します。

  • 【ACCESS】テーブルの内容がフォームから見れないんです。。。

    テーブルに入力してある内容が、(レコードソースのテーブル名も間違ってないのに)フォームからその内容が見れないんです。 分かる方がいらっしゃいましたら、教えてください。よろしくお願いします。

  • アクセスのテーブルとフォームのリンク

    アクセスのテーブルにコンボボックスのルックアップ機能を使って、データに緋もづくIDの値を入力しています。例えば、1:玩具、2:生活雑貨などのデータで、テーブル上には玩具、生活雑貨などの値が表示されていますが、キー項目としては1,2のID値が使われています。 この項目をフォームで表すと、フォーム上には玩具、生活雑貨などの値ではなく、ID値1、2などが表示されてしまいます。フォームで選択しなおしてあげると、その値は正常に保存されテーブル側にも玩具、生活雑貨などの値が正しく表示されています。 テーブル上、フォーム上ともにID値ではなく、項目値(玩具など)を表示するようにしたいのですが、これはどこかの設定が間違っているのでしょうか。 ご存知の方教えていただけないでしょうか。

  • access検索フォームからメイン、サブフォームへ

    access初心者です。 先日、「メイン、サブフォームの入力」について質問した者です。 取引先の会社情報を管理するために、access2007で顧客管理を作成しています。 現在、取引先本社情報とその支店情報を新規登録及び既存顧客を編集するフォーム「会社登録フォーム」と「会社検索フォーム」を主にVBAで作成しています。 <実現したいこと>: 既存顧客を編集する場合は「会社検索フォーム」から抽出し、「選択」ボタンで会社情報を「会社登録フォーム」に呼び出し、本社及びその支店情報を編集する。 <困っていること>: 「会社検索フォーム」から顧客を選択後、「会社登録フォーム」では、支店情報は変わりますが、本社情報が変わりません。 (メッセージ:「リレーションシップが設定されたレコードがテーブル'支店テーブル'にあるので、 レコードの削除や変更を行うことはできません。」というメッセージがでます。) <会社登録フォームの環境>: 会社の本社情報をメインフォーム、その会社の支店情報をサブフォームに、単票形式のタブコントロールで複数画面にして、支店ごとに分けて入力できる登録フォームを作成しています。 本社テーブルの会社IDを主キーに、支店テーブルの支店IDを主キーにしてリレーションシップを設定し、クエリ「Q_本社支店」というテーブルを作成しています。 <会社検索フォームの環境>: ・「Q_本社支店」テーブルを元に「会社検索フォーム」を作成しています。 ・「会社名」「支店名」等で検索し、データシートで表示します。 ・ 抽出されたレコードの「選択」ボタンで、「会社ID」を「会社登録フォーム」の本社情報の「会社ID」に代入します。 色々調べてやってはみたのですが、上手くいきません。 行き詰まり感があり、困っております。 ご教授のほどよろしくお願いいたします。

  • アクセス フォームのマクロに関して

    アクセスでマクロにてフォームを閉じるを選択しているのですが 新規レコードが必ず追加されてしまいます。 そのフォームはデータ入力用のフォームなのですがデータ入力終了時 テキスト欄をすべて空白でマクロの閉じるを実行させると 必ずテーブルに空白の新規レコードが入力されてしまいます。 なにかいい方法ありますでしょうか?

専門家に質問してみよう