
Digamos que estou construindo um banco de dados Access para armazenar receitas e calcular o custo dessas receitas. Preciso de uma tabela de receitas, uma tabela de possíveis ingredientes e uma tabela de itens de receita.
O custo de cada ingrediente é armazenado na tabela Ingredientes, junto com a unidade de medida. Por exemplo, podemos armazenar um ingrediente "hambúrguer" com unidade de medida "onças" e custo de US$ 0,25 por onça.
RECIPES INGREDIENTS RECIPELINES
-------- ------------- -------------
ID ID ID
Name Name RecipeID
MeasurementUnit IngredientID
CostPerUnit Quantity
Estou criando um subformulário para adicionar linhas de receitas. Quero permitir a entrada do campo Quantidade, mas também quero exibir a unidade de medida do ingrediente. Em outras palavras, quero que o formulário fique assim:
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 ]
Depois que o usuário insere o nome de um ingrediente (uma caixa de combinação no campo IngredientID), desejo exibir a unidade de medida para que o usuário saiba se está digitando onças, xícaras, libras ou o quê. Isso é possível?
Responder1
Escrevi a pergunta inteira e o superusuário me indicououtra perguntaque aliás tinha a resposta que eu precisava.
No próprio formulário, altere a Fonte do Registro para ser uma consulta em vez de uma tabela. Nesse caso:
SELECT RecipeLines.*, Ingredients.MeasurementUnit
FROM Ingredients
INNER JOIN RecipeLines ON Ingredients.ID = RecipeLines.IngredientID;
Então, MeasurementUnit se torna uma fonte de controle selecionável em uma caixa de texto. Ao desabilitar a caixa de texto, ela se torna uma exibição somente para visualização.