2015-05-05 12 views
1

У меня есть вычисленное поле в таблице, которое должно принимать значение из другой таблицы, но в окне генератора выражений оно не позволяет мне выбирать значения из других таблиц. Затем я попытался создать форму из таблицы и поместить в исходный элемент функцию, которая мне нужна, но она вызывает ошибку #Name?.Вычисленное поле со значением из другой таблицы в Microsoft Access

Это код, который я поставил в контроле источника (функция МФЛ):

=IIf([Stato]="Vendita";[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Provv_Vendita]![Costo]);[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Provv_Prevendita]![Costo])) 

[Stato] и [Costo ivato 1 pezzo] два поля, которые находятся в одной и той же таблицы (называемой Prodotti), что структурирована следующим образом:

Stato  Costo Ivato 1 pezzo 

Vendita   10 
Prevendita  20 

другой таблицы (так называемый Provvigioni), как

Tipo  Costo 

Vendita  1,5 
Prevendita 5 

Provv_Vendita и Provv_Prevendita два запросы, выберите значения, которые мне нужны и структурированы как этого

SELECT Provvigioni.Costo 
FROM Provvigioni 
WHERE Provvigioni.Tipo="Vendita"; 

Есть ли способ, чтобы выйти на поле из другой таблицы и использовать в зависимости от первой таблицы?

+0

С этим вопросом довольно много проблем. 1) В вашем заявлении IIF вы использовали полуколоны (;), а не запятые (,). 2) Вероятно, вы получаете ошибку '#Name? 'В своей форме, потому что поля, на которые вы ссылались в вашем заявлении' IFF', не существуют в форме (т. Е. Вы не указали форму источника записи, ссылается на таблицу/запрос, содержащий эти поля). 3) В таблице Provvigioni вы сказали, что «Vendita» имеет «Costo» из «1,5» ... это значит, что это или это 1.5? 4) Ваш оператор 'IIF' лучше подходит для запроса (см. Мой ответ ниже). –

ответ

4

Я не 100% уверен, что вы после этого, но я подумал, что было бы лучше, чтобы показать вам, как связать Сначала две таблицы в запросе.

Перейти Создать> Конструктор запросов:

enter image description here

Добавить оба ваши таблицы (дважды щелкните их):

enter image description here

Затем закройте окно Показать таблицу; Теперь вы должны иметь свои таблицы в конструкторе запросов:

enter image description here

Нажмите и перетащите Stato в типо; это должно создать соединение между этими полями:

enter image description here

Дважды щелкните на всех полях в каждой таблице, так что они будут появляться в запросе:

enter image description here

В следующий доступный поле для запроса, щелкните правой кнопкой мыши в поле «Field» и выберите «Масштаб»:

enter image description here

Поместите свой IIF заявление там; перед ним с именем поля и двоеточием, как это, например:

enter image description here

... Обратите внимание, что я убирала ваш IFF заявление немного, так что теперь гласит:

MyCalculatedField: IIf([Stato]="Vendita",[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Costo]),[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Costo]))

Нажмите «ОК» в окне «Масштаб». Нажмите кнопку «Выполнить», чтобы увидеть результат вашего запроса:

enter image description here

Вот что результаты запроса в (проверить вычисленное поле является то, что вы ожидаете, что это будет):

enter image description here

Если вы хотите, чтобы результат этого запроса заполнил данные в форме, вы должны сохранить запрос ...

enter image description here

...и назвать это что-то:

enter image description here

Вы можете перейти к Создать> Дизайн формы:

enter image description here

В панели свойств на правой стороне, идите в «Data» Закладка и использовать раскрывающийся рядом с Record Source, чтобы выбрать запрос, который вы только что сохранили:

enter image description here

Если вы идете в дизайн> Добавить существующие поля, вы должны быть в состоянии принести в поле из запроса для использования в вашей форме (Дважды щелкните или перетащите их, чтобы появиться на вашей форме):

enter image description here

Надеюсь, это поможет!

+0

Невероятно! Единственная критика в том, что в моей версии доступ делает меня для нас точкой с запятой как разделителем для полей функций, я думаю, что это локализация, я живу в Италии. Спасибо, в любом случае – Ponzaro

+0

ahh ok! не понимали изменения формул в зависимости от местоположения :) –

0

Создайте запрос.

Вставьте две таблицы и создайте соединение между Stato и Tipo.

Теперь вы можете выбрать [Косто] и [Косто Ivato 1 Pezzo]

Смежные вопросы