Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Home : Access 2016)
テーブルAの入力でテーブルBを更新するには?
投稿日時: 20/05/12 19:08:43
投稿者: SH_oyaji

アクセスで日計表を作っている途中です。アクセスは始めたばかりでまだまだ分かっていません。
基本的に日付毎のテーブル(A)と科目毎のテーブル(B)を作り
テーブルAではフィールドとして日付、科目1、科目2、科目3、科目4、摘要1、摘要2、摘要3、摘要4、
収入1、収入2、収入3、収入4を設定。
テーブルBではフィールドとして日付、科目、摘要、収入金額を設定。
 
毎日の入力には
テーブルAからの入力フォームを下記のように作りました。
実際の入力は左側のフィールドで行い。ボタンを押すことで右のテーブルAの更新を行い
レコードリストを表示する。
 
 日付 2020/5/10
                       2020/5/10 科目1 摘要1 収入1
    科目1  摘要1 収入1        2020/5/10 科目2 摘要2 収入2
    科目2  摘要2 収入2   ボタン  2020/5/10 科目3 摘要3 収入3
    科目3  摘要3 収入3        2020/5/10 科目4 摘要4 収入4
    科目4  摘要4 収入4
 
            合計金額
 
 上記のようなフォームを作りたいのですが
リレーションの組み方、及びボタン設計につき教えていただけないでしょうか?

回答
投稿日時: 20/05/13 13:08:14
投稿者: sk

引用:
基本的に日付毎のテーブル(A)と科目毎のテーブル(B)を作り
テーブルAではフィールドとして日付、科目1、科目2、科目3、科目4、
摘要1、摘要2、摘要3、摘要4、収入1、収入2、収入3、収入4を設定。
テーブルBではフィールドとして日付、科目、摘要、収入金額を設定。

[テーブルA]は不要。
 
また、[テーブルB]については主キーとなるオートナンバー型の
フィールドを定義された方がよいでしょう。
 
引用:
テーブルAからの入力フォームを下記のように作りました。
実際の入力は左側のフィールドで行い。ボタンを押すことで
右のテーブルAの更新を行いレコードリストを表示する。

1. [テーブルB]をレコードソースとする帳票フォームを作成する。
 
2. 非連結フォームを新規作成し、詳細セクション上に
   非連結テキストボックス[日付]を配置する。
 
3. 2 のフォームの詳細セクション上([日付]の下辺り)に
   サブフォームコントロールを配置し、そのソースオブジェクトを
   1 のフォームとする。
 
4. 3 のサブフォームコントロールの[リンク親フィールド]プロパティ
   及び[リンク子フィールド]プロパティの設定により、
   メインフォームとサブフォームが[日付]同士でリンクするようにする。
 
以上のようなフォームを作成なさればよろしいのではないかと。
 
引用:
合計金額

これについては、サブフォームのフォームフッターセクション上に
Sum 関数を用いた演算テキストボックスを配置なさればよろしいでしょう。

投稿日時: 20/05/14 00:52:52
投稿者: SH_oyaji

skさんご教授を頂き有難うございます。大変助かります
少し説明不足で申し訳ありませんでした。
質問の補足と訂正をお伝えします。
まず訂正:先の質問で(ボタンを押すことで右のテーブルAではなくBの間違いでした)
補足:日計表には下記のような定型書式があって主として前述したテーブルAの
フォーム左をプリントアウトした用紙を毎日、経理へ渡し、判を押し保管の運びとなってます。
 
 2020/5/10      
 
  午前一般: (科目1) (摘要1) (収入1)
  午後一般: (科目2) (摘要2) (収入2)
 
  特別 : (科目3)  (摘要3) (収入3)
  予定外: (科目4)  (摘要4) (収入4)
 
                    合計金額
 
 
テーブルBのみのソースでサブフォーム上にフィールド(科目1)〜フィールド(収入4)の
設定は可能でしょうか?(フィールドによってはnullの事もありますが)

回答
投稿日時: 20/05/14 10:05:52
投稿者: sk

引用:
2020/5/10      
 
 午前一般: (科目1) (摘要1) (収入1)
 午後一般: (科目2) (摘要2) (収入2)
 
 特別 : (科目3)  (摘要3) (収入3)
 予定外: (科目4)  (摘要4) (収入4)
 
                   合計金額

「午前一般」や「午後一般」が何を意味しているのかが不明ですが、
少なくともそれらの要素(を表すコード)を格納するためのフィールドが
[テーブルB]に必要となるはず。
 
(以下、P は主キー、F は外部キー)

[テーブルB]
------------------------------------------------------------
P ID                     オートナンバー型
  日付                   日付/時刻型
F 業務区分コード         長整数型([業務区分テーブル]に準拠)
F 科目コード             長整数型([科目テーブル]に準拠)
  摘要                   テキスト型
  収入金額               通貨型
------------------------------------------------------------
([日付]と[業務区分コード]の値の組み合わせはユニーク)

[業務区分テーブル]
------------------------------------------------------------
P 業務区分コード         長整数型(またはテキスト型)
  業務区分名称           テキスト型
------------------------------------------------------------

[科目テーブル]
------------------------------------------------------------
P 科目コード             長整数型(またはテキスト型)
  科目名称               テキスト型
------------------------------------------------------------

引用:
日計表には下記のような定型書式があって主として前述したテーブルAの
フォーム左をプリントアウトした用紙を毎日、経理へ渡し、判を押し
保管の運びとなってます。

これについては上記のテーブルを元にしたクエリを作成した上、
そのクエリをレコードソースとするレポートを作成なさればよいでしょう。

投稿日時: 20/05/15 10:19:40
投稿者: SH_oyaji

skさんありがとうございます。一生懸命に勉強しているのですが
リンクフィールドやサブフォーム、レポート作成などの知識がまだまだ不十分で
想像できにくい面もありますが
ただ、提供して頂いている内容を参照してDB作成を触っているうちに少しずつ
理解が深まってきています。
もう少し頑張ってみます。有難うございました。

トピックに返信