投稿

5月 31, 2020の投稿を表示しています

Translate

ACCESSのフォームで、ヘッダーと明細フォーム(サブフォーム)をVBA無しで紐づける方法

イメージ
ACCESSビギナー向け・フォーム、サブフォームの紐づけ方法 ACCESSでフォームのヘッダーと明細を紐づける方法 データーベース初心者がACCESSの操作に慣れ始めたころ、次に直面するのが、複数のテーブルを使って、フォーム内でデータを紐づける方法になるだろう VBAプログラムのSQLで全解決する方法もあるけれど、折角アクセスを使っているので、ACCESSの機能で紐づける方法を説明 下記のような売上ヘッダーテーブル、明細テーブルがある前提で説明。 売上ヘッダー  売上明細 売上ヘッダーと明細は、売上番号、種別で紐づけられる前提で、最初に作成するフォームは、ヘッダー側で、売上ヘッダーと紐づくフォームを用意する。 テキストボックスは、ヘッダーと、明細が紐づいている事が分かりやすいように、売上番号と割り当てておく。 もう一つフォーム作成の画面を開き、もう一つのフォームは、売上明細テーブルと紐づけし、フォーム名を売上明細として保存する。 それぞれのテキストボックスは、明細の中から表示したい内容を割り当てる事になるが、今回は、売上番号が連動している事を分かりやすくする為に、敢えて売上明細にも売上番号のテキストボックスを用意している。 また、売上明細の[既定のビュー]は、帳票フォームとしておいた方が、今回の売上入力画面で見やすい画面になるだろう。 次に、最初に作成したフォーム側で、サブフォームのコントロールを配置する。 サブフォームウィザードでは、テーブルからでも、フォームからでもどちらからでも紐づけしたい子のデータを選択しても良いが、今回は、売上明細を先に保存して作ったので、フォームから売上明細フォームを選択。 サブフォームのリンク親フィールド編集画面を表示し、親フィールドと子フィールドにそれぞれ、売上番号、種別と割り当てを行う。 すると、売上ヘッダーのフォームを一度閉じ、開きなおすと売上入力画面が表示され、最初のレコードは、売上番号1と、次のレコードボタンを押すと、売上番号2と紐づけられている事が確認出来る。 こうすれば、わざわざ、VBAでヘッダーと明細をデータを取得するSQLを作ってデータを取得して表示するとかしなくても、簡単に紐づけが可能である。 実際は、商品コー