Обновите таблицу доступа MS, используя набор записей VBA, добавив 2 или более вложенных оператора вложенного соединения. - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть 3 таблицы доступа - tblUsers, tblAssignnent и tblJob.В tblJob, используя серию вычислений в VBA, я получаю дамп данных, который должен обработать моя команда по качеству (QC).У tblUsers есть список всех наших сотрудников и где они расположены по всему миру.Параметр tblAssignnent определяет, какой аналитик группы контроля качества будет работать над каким делом, которое обрабатывается нашими сотрудниками во всем мире.Например,QCID 123 должен работать во всех случаях 3-го уровня, с которыми работают наши сотрудники в Китае.Соответственно, VBA должен назначить QCID 123 всем строкам, в которых люди в Китае работали на уровне 3. У нас есть около 20 таких идентификаторов контроля качества, и в среднем ежедневно обрабатывается 1000 случаев.

Опять-таки, здесь выгодаtblUsers определяет имя и местоположение каждого сотрудника - tblAssignnent определяет местоположение и уровень каждого сотрудника вместе с ожидаемым идентификатором QC.У tblJob есть Имя штата и Уровень.Посмотрите на его shapshot ниже,

tblUsers
NAME        LOCATION    
Mathew      Shanghai
John        New York
Peter       Dubai

tblAssignnent
QCID        LEVEL       LOCATION
123         L3          Shanghai
135         L1          New York

tblJob
QCID        LEVEL       NAME        CASEID
            L3          Mathew      001283526
            L1          John        827271729

Так что в основном мне нужно обновить QCID с 123 и 135 в tblJob с использованием VBA.Я попытался INNER JOIN в наборе записей, но я продолжал получать ошибки.При поиске, по-видимому, набор записей VBA может не содержать сложные операторы.Простите за плохое форматирование, так как теперь у меня есть доступ только к телефону.Все мои попытки получить этот код не увенчались успехом, и я буду очень признателен за любую продленную помощь.

Я остаюсь в вашем распоряжении для дальнейших разъяснений.

1 Ответ

0 голосов
/ 02 декабря 2018

Я думаю, что, возможно, я неправильно понял это раньше.Если вам нужен только QCID, добавленный в таблицу Job, это действительно просто:

UPDATE (tblJob 
INNER JOIN tblAssignment ON tblJob.LEVEL = tblAssignment.LEVEL) 
INNER JOIN tblUsers ON (tblUsers.Location = tblAssignment.Location) 
AND (tblJob.EName = tblUsers.EName) 
SET tblJob.QCID = tblAssignment.QCID
...