2016-02-16 56 views
1

У меня есть внешний ключ просмотр в виде следующих двух таблиц -?MS Access DLookUp или значение # Ошибка Имя

tblApplications 
    applicationId 
    applicationName 

tblApplicationsManagement 
    application (references tblApplications.applicationId) 

У меня есть текстовое поле на форме, который устанавливается с tblApplicationsManagement, который Я хочу ссылаться на имя приложения через отношения.

Я попытался это -

=DLookup("[applicationName]", "tblApplications","[applicationId] = [tblApplicationsManagement]![application]") 

И все это я получаю на # Ошибка первоначального входа формы, и все приходит пустым.

изменение - следующие данные возвращаются #Name? по всем статьям

=DLookUp("[applicationName]","tblApplications","application=" & [applicationId]) 

Чтобы убедиться, что я собираю всю необходимую информацию. Я пытаюсь заполнить поле Plain Text с помощью [applicationName] с внешнего ключа. текстовое поле: fieldApplicationName

ПРИМЕЧАНИЕ для любых зрителей. Решение верное. Проблема была на стороне SQL, имеющей столбец с именем «приложение», который не указан как ключевое слово, но он должен быть где-то на стороне SQL или MS Access.

+1

Получите тестовую версию 'DLookUp()', работающую без всех переменных. Тогда работайте от этого до своей цели. Также: Сделайте обычный запрос, который делает то, что вы хотите; затем преобразуйте это посредством шагов в оператор 'DLookup()'. Также: используйте «Debug.print» и точки останова, чтобы убедиться, что вы получаете значения из полей формы. Последняя часть вашего 'DLookUp()' выглядит так, как будто у нее проблемы. – Smandoli

ответ

1

Если форма содержит текстовое поле с именем txtApplication, который связан с tblApplicationsManagement.application поля вашей формы Record Source, это должно работать как Источник управления для текстового поля проблемы ...

=DLookup("[applicationName]", "tblApplications", "[applicationId] = " & [txtApplication]) 

Примечание Я предположил, что tblApplicationsManagement.application и tblApplications.applicationId оба числовых типов данных. Если это текст, вам нужно добавить котировки ...

=DLookup("[applicationName]", "tblApplications", "[applicationId] = '" & [txtApplication] & "'") 
+0

Они оба целые, поэтому никаких кавычек не требуется. Я не понимаю [txtApplication]. Если я сделаю следующее, я все равно получаю #Error - '= DLookUp (" [имя_приложения] "," tblApplications "," [applicationId] = "& [application])' – whoisearth

+0

Я думаю, что часть путаницы, читающей это текст В свойствах Box нет только источника управления связью. Я вхожу в значения источника управления и не получаю никаких результатов. Если я создам новое текстовое поле в форме, оно будет открыто отображать 'UnBound', но затем я установил источник управления, как указано выше, с той же проблемой. – whoisearth

+0

ОК. Попробуем этот тест, пожалуйста: Сделайте копию своей формы. В этой копии добавьте текстовое поле и назовите его * txtApplication *. Установите * Контрольный источник * в поле 'приложение' в * Источнике записи *. Переключитесь с Design на Form View и убедитесь, что новое текстовое поле правильно отображает значение 'application' для каждой строки в форме. Если это не так, что происходит вместо этого? Если это так, вернитесь к Design View и используйте выражение 'DLookup', которое я предложил в качестве * Control Source * текстового поля, в котором вы хотите отобразить' applicationName'. – HansUp

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