Как упростить Access Queries - PullRequest
       10

Как упростить Access Queries

0 голосов
/ 27 апреля 2019

Я строю запрос, который добавит столбец для отредактированных имен и отредактированных номеров идентификаторов. В настоящее время у меня есть 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 запросов в сочетании с макросом

  1. В новой колонке: «Новый ID 1» ​​Формат ID 1 для добавления начальных нулей, чтобы сделать длину не менее 7

  2. Удалить любой новый идентификатор 1, если длина идентификатора 1 меньше 7.

  3. В новой колонке: «Новый ID 2» Формат ID 1 добавляет начальные нули, чтобы сделать длину не менее 7

  4. Удалить любой новый идентификатор 2, если длина идентификатора 2 меньше 7.

  5. В новой колонке Новый ID 3 Формат ID 3 показывает только цифры. (удалить специальные символы и буквы)

  6. Удалить новый идентификатор 3, если соответствующий идентификатор 3 меньше 7.

  7. В новом столбце Новое имя 1 в формате Имя 1 (INNERJOIN с другой таблицей)

  8. В новом столбце, новое имя 2, формат имени 2 (INNERJOIN с другой таблицей)

  9. Удалить строки, если новый идентификатор 1, новый идентификатор 2 и новый идентификатор 3 не заполнены

  10. Экспорт с форматированием

У меня много кода для 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. В конце я хотел бы объединить все это в один запрос.

...