• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access 別フォームの一致レコードに値を代入)

フォーム【A】と【B】の入荷終了日を自動で更新する方法について

このQ&Aのポイント
  • フォーム【B】の変更時に、入荷終了した大カテゴリに対してフォーム【A】の入荷終了日を入力する必要があります。
  • その際に、フォーム【B】の対応する小カテゴリの入荷終了日にも同じ日付が自動で入るようにすることが目的です。
  • 具体的な設計方法についてご教示いただけますでしょうか。

質問者が選んだベストアンサー

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

今晩はまだ暑いですが随分日暮れが早くなりました。 カテゴリ間のリーレーションシップを添付図とします。 大カテゴリーをレコードソースとするサブフォームを持つフォームを  作成します。 サブフォームは小カテゴリーをレコードソースとするフォーム >大カテゴリとして入荷が終了する野菜はフォーム  【A】の入荷終了日に日付を入れます。 ★主フォームからサブフォームの参照、更新等は出来ませんので  サブフォームの入荷終了日のクリックイベントで  主フォームの入荷終了日コピーします。  (サブフォームから主フォームはFormではなくParent!を付けて指定します。 ------------------------------------------------------------------------- Private Sub 入荷終了日_Click()  [入荷終了日]= [Parent]![入荷終了日] End Sub ---------------------------------------- リレーションシップは データベースツールからリレーションシップに入りガイドに従います

9h0a8r6ry
質問者

お礼

chayamati様 ありがとうございます。 無事完成させることができました。 この度はどうもありがとうございました。

その他の回答 (3)

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.3

フォームは全能ではありません。 テーブルのフィールドを見直す必要があります。 フォーム【A】、フォーム【B】のレコードソースは別々のテーブルですか 補足願います

9h0a8r6ry
質問者

補足

chayamati様 補足させていただきます。 ご指摘通り、フォーム【A】・【B】は別々のテーブルからレコードソースをとっています。 フォーム【A】のレコードソース→テーブル【A】より フォーム【B】のレコードソース→テーブル【B】より

  • tamu1129
  • ベストアンサー率58% (1295/2223)
回答No.2

>こちらに関しては、入荷終了日はものによって異なります。 ですよね 9h0a8r6ry さんが言っている方法では大分類でトマトを選択したら、大分類がトマトになっている物すべてが同じ入荷終了日となってしまいます 運用方法で、暫定的といえども入荷終了日が無い物に関して入荷終了日に日付が入るような運用もよいとは言えないでしょう テーブルの構造でその商品ごとに入荷開始日・入荷終了日を持っているようですから、逆に入荷終了日には暫定的な日にちを入れるのではなく、空欄にした方が良いのでは? 商品の入荷終了日が空欄の物を抽出すれば、まだ取り扱いが終了していない商品の一覧を簡単に一覧表示する事も可能ですしね 暫定的な日にちを入れていて、本当にその日にちに取り扱い終了する商品が出てきたら、暫定的に終了日にしている商品なのか本当に終了日になったのかわからない商品になってしまいます >ちなみに、フォームではない処理となると、更新クエリでしょうか? 更新クエリでもできますが、この程度の事ならば1つの商品自体を名前でも商品コードなどでもいいので抽出できる仕組みを組み込んで取り出しする それをフォームに表示させて、終了日時を入力するって事でも良いのでは? 入荷終了になる品数が1日いくつあります? たいした数量ではないでしょう? それならパラメータクエリ使って商品を単票フォームとして表示して入荷終了日に打ち込めばと思います 私が知人に頼まれるのは、まず大分類を選択するとその大分類に該当する商品がサブフォームに一覧表示される 更にサブフォームの該当所品のヘッダー部分などをダブルクリックする事で、該当商品が単票フォームで開かれて一覧表示では表示できなかった詳細が見れるようになるって感じの物を要求されます 検索用のフォームに大分類や中分類 名前や商品コード(ここはあいまい検索で入力した文字の一部分が該当すればヒットする)などの文字の入力用テキストボックスを配置させ、入力したデータをand検索になるようにしてサブフォームに条件に合致した物だけ表示させるようにすれば、大分類部分だけにトマトを入力して抽出すれば、大分類がトマトの商品がサブフォームに一覧表示 大分類にトマト 名前に ミニ で抽出すれば、大分類がトマト でかつ商品名に ミニ の文字が含まれる商品がサブフォームに表示されるという感じですね 単票フォームで1つづつでなくても、サブフォームに表示された物を一括で変更させる事も出来るので、ようは対象となる商品の抽出方法を適切に行えるようにする事が重要だという事です

9h0a8r6ry
質問者

お礼

tamu1129様 早速サブフォームで作ってみました。 ここに書換えのコードを入れれば想定しているものができそうです。 やはり、サブフォームで正しく抽出し操作するのが使い勝手がよさそうですね。 また、未来日を入れている件に関してはAccessを触り始めの頃に betweenを空白欄に適用させる方法が分からず、暫定で未来日で入力していました。 当時の調べ方が悪かったのか、今回調べなおしたところ空白でも適用させることができそうなので再度組みなおしてみようと思います。 この度はどうもありがとうございました。 また何かありましたらよろしくお願いいたします。

  • tamu1129
  • ベストアンサー率58% (1295/2223)
回答No.1

フォームで処理したいって事ですか? まずはAフォームを作成する Aフォームの大カテゴリとリレーションシップ組んで、該当する商品が表示されるフォームをBフォームとして作成して、Aフォームのサブフォームとして配置する で、Aフォームの入荷終了日のデータが更新されたら、更新後処理としてサブフォーム内のBフォームの入荷終了日を書き換え処理させれば出来ますけどね でも普通に考えれば大カテゴリーで分類する商品の入荷が全部同じ日に入荷終了になるって事なんてあるんですか? それだと、大カテゴリーで分類する商品がすべてサブフォームに表示したのではダメですから、サブフォームに表示される商品をセレクトさせる事が必要になりますよ

9h0a8r6ry
質問者

補足

tamu1129様 ご回答ありがとうございます。 >普通に考えれば大カテゴリーで分類する商品の入荷が全部同じ日に入荷終了になるって事なんてあるんですか? こちらに関しては、入荷終了日はものによって異なります。 入荷終了していない商品は特定の未来日が規定値で入っており 入荷終了処理をする際に実際の日付を入れ、処理の際にifで分岐しようかと考えていました。 ちなみに、フォームではない処理となると、更新クエリでしょうか? また、フォームで処理するとしたらサブフォームの利用が必須になりますか?

関連するQ&A