2015-04-23 3 views
0

Мне нужно использовать несвязанное текстовое поле в отчете Access 2013, потому что хотя данные, которые я ищу, находятся в связанной таблице, возможно, что не может быть соответствующей записи в детском столе.Отчет о доступе к MS Unbound DLookup не обновляется, если не щелкнуть

В принципе, у меня есть таблица мастер-инвентаря, которая имеет первичный ключ и уникальный индекс «Stock #». В этой таблице приведены данные, относящиеся к этому индивидуальному номеру запаса, и есть еще 5 связанных таблиц, которые содержат другие данные, относящиеся к этому номеру запаса, такие как стоимость, продажи, местоположение и т. Д. Когда запись инвентаря создается в главной таблице, дочерняя запись создается в 4 таблицах с некоторыми базовыми исходными данными, и все они заблокированы с отношением один к одному. Я решил структурировать данные, подобные этому, чтобы избежать конфликтов блокировки записи и повысить производительность в многопользовательской среде, несмотря на мое использование несвязанных форм.

Вот моя проблема:

Я разработка отчета инвентаризации снимок, и он имеет данные из всех пяти таблиц. Одна из таблиц с одним отношением не создается с учетными записями инвентаря. Он исходит от внешнего источника (ключевой следящей машины). Проблема в том, что иногда база данных может существовать в базе данных, но она еще не дошла до ключевой машины. В большинстве случаев это не очень важно, за исключением случаев, когда разрабатывается связанный отчет. Запрос связанного отчета выбирает данные из всех таблиц инвентаризации, включая таблицу ключевых данных. Предположим, что у меня есть 200 номеров акций в таблице инвентаря, с 200 идентичными записями в других 4 таблицах. Однако в таблице ключевых данных имеется только 195 записей. Это будет означать, что в отчете будут отображаться только номера акций и соответствующие данные, где точное совпадение существует во всех пяти таблицах (195 записей). Мое решение это должно было создать DLookup в несвязанного текстовом поле со следующим синтаксисом:

=DLookUp("[KeyTrakExport]![CurrentlyOutTo]","[KeyTrakExport]"," [KeyTrakExport]![Stock#]= " & Chr(34) & [Reports]![TestInvtReport]![Stock#] & Chr(34)) 

Я пробовал много вариаций этого, и без Chr (34), и есть по крайней мере 5 методов работы для поиска ключевых данных. Тем не менее, проблемы в том, что единственный способ заставить его фактически получить значения (если есть) - щелкнуть в каждом текстовом поле ключевых данных в отчете. Я пробовал много разных методов запроса/обновления и использовал VBA для извлечения значения и установки его в текстовое поле. Ни одна из этих функций не работает должным образом, и, если что-либо, они присваивают одинаковое значение всем записям отчета. Я знаю, что доступ ограничен во многих отношениях, но я должен использовать его в течение нескольких месяцев, прежде чем переключиться на реальную разработку. Кто-нибудь знает, как сделать это обновление функции dlookup, как только будет загружен отчет, и всякий раз, когда он обновляется? Или я должен отказаться от него и перейти с непрерывной формой, составленной как отчет?

Спасибо,

Matt

ответ

0

Я на самом деле просто нашел решение. Я уже пробовал этот синтаксис раньше, но ничего не получилось, но после установки последних обновлений и перезагрузки Office это сработало.

=DLookUp("[CurrentlyOutTo]","[KeyTrakExport]","[Stock#]= '" & [Reports]! [TestInvtReport]![Stock#] & "'") 
Смежные вопросы