Как использовать Dlookup для 1 поля в Tab Control формы доступа - PullRequest
0 голосов
/ 19 июня 2019

Все еще работаю с Access 365, у меня есть 4 таблицы и 1 форма

Table Plant {PID(key), Name};  
Table Provider {VID(key), Company}; 
Table Contractor {CID(key), Plant, Provider};  
Table KPI {KID(key), ServiceID, KPI1, KPI2}. 

Их отношение:

Plant.PID = Contractor.Plant,  
Provider.PID = Contractor.Provider,
Contractor.CID= KPI.ServiceID

Форма KPI связана с таблицей KPI, чтобы упростить способ вводаПо данным, я создал вкладку управления «TabCtl64» с 2-мя страницами - «KPI» и «Detail».На странице "KPI" есть поле со списком "cbxPlantID", поле со списком "cbxProviderID" и текстовое поле "ServiceID".Что я хочу: когда пользователь выбирает завод из «cbxPlantID», а провайдер из «cbxProviderID», он ищет CID из таблицы «Подрядчик», а затем извлекает значение в поле «ServiceID».

Я пытался так:

Private Sub cbxProviderID_AfterUpdate()
ServiceID = DLookup("[CID]", "Contractor", "[Plant]= " & [Forms]![KPI]![cbxPlantID] & " And [Provider] =" & [Forms]![KPI]![cbxProviderID])
End Sub

Затем появляется сообщение об ошибке: не удается найти запись в таблице Исполнитель с ключом, совпадающим с полем ServiceID.Но есть запись.И я создал другую форму без Tab Control, тот же код может работать - поэтому я думаю, что проблема может быть связана с преобразованием имен в Dlookup комбинированных списков cbxPlantID и cbxProviderID: [Forms]! [KPI]! [CbxPlantID] не подходит для поляво вкладке контроль формы.Но я не могу найти, как исправить.Кто-нибудь знает это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...