Как сделать исключение в запросе SQL (Access to Excel) - PullRequest
1 голос
/ 19 апреля 2019

Я беру некоторые данные из таблицы Access в таблицу Excel, и они зависят от некоторых параметров. Мой список данных в таблице доступа включает в себя, например:

1-x branch
2-y branch
3-z branch
4-t commercial branch
5-r commercial branch
6-w corporate branch
7-g corporate branch

В Excel VBA, если я хочу получить все свои данные, я создаю запрос SQL, например:

sql = "select * from [table] where [Branches] like "%"

если я хочу получить только данные коммерческих филиалов:

sql = "select * from [table] where [Branches] like '%" & "commercial" & "%'"

и если я хочу получить только данные корпоративного филиала:

sql = "select * from [table] where [Branches] like '%" & "corporate" & "%'"

и вот вопрос. Что мне делать, если я хочу получить данные, кроме корпоративных и коммерческих филиалов? Какой SQL-запрос мы можем создать?

Большое спасибо.


Это плохо, я мог бы объяснить более ясно. Перед созданием запроса я использую свои параметры, например так:

Select Case main.Range("D6").Value
Case "ALL"
brnch = "%"
Case "CORPORATE"
brnch = "%" & "CORPORATE" & "%"
Case "COMMERCIAL"
brnch = "%" & "COMMERCIAL" & "%"
End Select

и мой запрос на самом деле такой:

sql = "select * from [table] where [Branches] like '" & brnch & "'"

Теперь, что я могу сделать, чтобы получить филиалы без рекламы и корпораций.

1 Ответ

3 голосов
/ 19 апреля 2019

Вы можете использовать not like:

sql = "select * from [table] where Branches not like '%corporate%' and branches not like '%commercial%'";

Если вы хотите запустить этот код в MS Access, подстановочные знаки отличаются, а разделитель строк - двойная кавычка:

sql = "select * from [table] where Branches not like ""*corporate*"" and branches not like ""*commercial*""";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...