最新トピック
8
25 日前
Hatena様にご質問 25 日前
1
2 ヶ月前
排他制御 2 ヶ月前
6
5 ヶ月前
モジュールでカレントフォームのコントロールを使うには 5 ヶ月前
7
6 ヶ月前
日付のテキストボックスからフォームが開けません 6 ヶ月前
9
6 ヶ月前
レポートにおける数値の間隔を広げる方法 6 ヶ月前
12
6 ヶ月前
リストボックスから複数選択しそれをテーブルに格納したい 6 ヶ月前
タグリスト
Markdown テーブル生成
Accessのテーブルやクエリのデータを貼り付ける場合は下記で、Markdown書式のテーブルに変換して貼り付けてください。
ご認識の通り正規化するど、T_履歴_機種、T_履歴_加工のテーブルも必要になりますね。
データの集計や検索などのデータ操作を効率よく行うには必須の設計になります。
T_履歴 と T_履歴_機種、T_履歴_加工 の関係は「一対多の関係」といいますが、このような場合、入力フォームの設計はAccessではメイン/サブフォーム形式のフォームを使用するのが一般的です。
検索すればサンプルが多数見つかりので、参照してみてください。
このようなことを実現するには、下記の2つの方法が考えられます。
T_履歴、T_履歴_機種、T_履歴_加工 と同じフィールド構成の一時テーブルを作成して、それをソースとするメイン/サブフォームを作成して、入力フォームとする。
あるいは、現状の入力フォームを非連結にして、登録ボタンでVBAで T_履歴、T_履歴_機種、T_履歴_加工 にデータ追記する。
コントロール名を規則的なものにしておけば、ループ処理でシンプルなコードで実現できると思います。
コントロール名(チェックボックス)が 「機種_1」「機種_2」「機種_3」・・「機種_26」として下記のような感じです。
T_履歴_機種 に登録する部分のコードの考え方です。これを参考にコード作成してみてください。
ほかの部分も同様にできると思います。
登録する順番は先にメインテーブル(T_履歴)のほうからしてください。