Я строю запрос, который добавит столбец для отредактированных имен и отредактированных номеров идентификаторов. В настоящее время у меня есть 10 запросов, которые редактируют и добавляют столбцы, которые объединяются с макросом. Как можно упростить этот запрос в один?
У меня есть таблица Excel со столбцами:
Имя 1, Новое имя 1, Имя 2, Новое имя 2, ID 1, Новый ID 1, ID 2, Новый ID 2, ID 3, Новый ID 3.
Я заполняю столбцы Имя 1, Имя 2, ID 1, ID 2, ID3 и загружаю этот лист в таблицу доступа с именем Scrub.
У меня также есть электронная таблица NameEdit, к которой я буду обращаться позже.
Я запускаю макрос, и новый лист Excel экспортируется с дополнительными столбцами:
Новое имя 1, новое имя 2, новый идентификатор 1, новый идентификатор 2, новый идентификатор 3 3
В настоящее время у меня есть 10 запросов в сочетании с макросом
В новой колонке: «Новый ID 1» Формат ID 1 для добавления начальных нулей, чтобы сделать длину не менее 7
Удалить любой новый идентификатор 1, если длина идентификатора 1 меньше 7.
В новой колонке: «Новый ID 2» Формат ID 1 добавляет начальные нули, чтобы сделать длину не менее 7
Удалить любой новый идентификатор 2, если длина идентификатора 2 меньше 7.
В новой колонке Новый ID 3 Формат ID 3 показывает только цифры. (удалить специальные символы и буквы)
Удалить новый идентификатор 3, если соответствующий идентификатор 3 меньше 7.
В новом столбце Новое имя 1 в формате Имя 1 (INNERJOIN с другой таблицей)
В новом столбце, новое имя 2, формат имени 2 (INNERJOIN с другой таблицей)
Удалить строки, если новый идентификатор 1, новый идентификатор 2 и новый идентификатор 3 не заполнены
Экспорт с форматированием
У меня много кода для 10 запросов, вот некоторые. Некоторые коды похожи друг на друга.
Добавить столбец: Новый идентификатор 1
UPDATE Scrub SET NewID1 = format(REPLACE([ID1],"-",""),"0000000");
Удалить новый ID 1, если длина ID1 меньше 7.
UPDATE SCRUB SET NEWID1 = "" WHERE LEN(ID1)<7;
Добавить столбец: Новый идентификатор 3
UPDATE SCRUB SET NEWID3 = "" ID3 Like '*[a-z]*';
Добавить столбец: Новое имя 1
UPDATE Scrub INNER JOIN NameEdit ON SCRUB.[Name1] = NameEdit.[Name] SET SCRUB.NewName1 = NameEdit.[Format];
DELETE
DELETE * FROM SCRUB WHERE LEN(NEWID1)=0 AND LEN(NEWID2)=0 AND LEN(NEWID3)=0;
Я ожидаю, что результатом будет таблица Excel с заполненными новыми столбцами.
У меня проблема в том, что NEWID3 не редактирует, чтобы удалить специальные символы.
Кроме того, когда идентификаторы удалены, он по-прежнему отображается в виде пустого пространства в Excel.
В конце я хотел бы объединить все это в один запрос.