
Допустим, я создаю базу данных Access для хранения рецептов и расчета стоимости этих рецептов. Мне нужна таблица рецептов, таблица возможных ингредиентов и таблица позиций рецептов.
Стоимость каждого ингредиента хранится в таблице «Ингредиенты» вместе с единицей измерения. Например, мы можем хранить ингредиент «Гамбургер» с единицей измерения «унции» и стоимостью 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 становится выбираемым источником управления в текстовом поле. Отключая текстовое поле, он становится дисплеем только для просмотра.