Допустим, я создаю базу данных 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 ответ1

0

Я выписал весь вопрос, а затем Super User указал мне на другой вопрос, на который случайно был ответ, который мне был нужен.

В самой форме измените Источник записи на запрос, а не на таблицу. В этом случае:

SELECT RecipeLines.*, Ingredients.MeasurementUnit
FROM Ingredients
INNER JOIN RecipeLines ON Ingredients.ID = RecipeLines.IngredientID; 

Затем MeasurementUnit становится выбираемым источником управления в текстовом поле. При отключении текстового поля оно становится отображением только для просмотра.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .