![Access はデータ入力フォームに関連フィールドを表示できますか?](https://rvso.com/image/1346590/Access%20%E3%81%AF%E3%83%87%E3%83%BC%E3%82%BF%E5%85%A5%E5%8A%9B%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AB%E9%96%A2%E9%80%A3%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
レシピを保存し、そのレシピのコストを計算するための Access データベースを構築するとします。レシピの表、使用可能な材料の表、レシピの明細項目の表が必要です。
各材料のコストは、測定単位とともに材料テーブルに保存されます。たとえば、「ハンバーガー」という材料を、測定単位「オンス」と 1 オンスあたり 0.25 ドルのコストで保存するとします。
RECIPES INGREDIENTS RECIPELINES
-------- ------------- -------------
ID ID ID
Name Name RecipeID
MeasurementUnit IngredientID
CostPerUnit Quantity
レシピの行を追加するためのサブフォームを作成しています。数量フィールドへの入力を許可したいのですが、材料の測定単位も表示したいです。つまり、フォームは次のようになります。
RECIPE FORM
ID: [ 5 ]
Name: [ Guacamole ]
Recipe line items: (this is the subform)
INGREDIENT AMT UNIT
----------------------------------
[ Hass Avocado ] [ 2.0 ] [ EA ]
[ Red Onion ] [ 0.5 ] [ CUP ]
[ Habanero Chile ] [ 2.0 ] [ EA ]
ユーザーが材料名 (IngredientID フィールドの上のコンボ ボックス) を入力すると、オンス、カップ、ポンドなど、ユーザーが入力している単位がわかるように測定単位を表示したいと思います。これは可能ですか?
答え1
私は質問全体を書き出しました。するとスーパーユーザーが私に教えてくれました別の質問偶然にも、そこには私が必要としていた答えがありました。
フォーム自体で、レコード ソースをテーブルではなくクエリに変更します。この場合、次のようになります。
SELECT RecipeLines.*, Ingredients.MeasurementUnit
FROM Ingredients
INNER JOIN RecipeLines ON Ingredients.ID = RecipeLines.IngredientID;
すると、MeasurementUnit はテキスト ボックス上で選択可能なコントロール ソースになります。テキスト ボックスを無効にすると、表示のみの表示になります。