Как избавиться от ненужных запросов в MS ACCESS - PullRequest
0 голосов
/ 06 апреля 2020

Я просмотрел предыдущие вопросы и не нашел ответа на следующий вопрос: есть ли в MS Access инструмент для работы с базами данных, позволяющий запускать и идентифицировать запросы, которые НЕ приводятся в качестве части моей базы данных. У нас есть много запросов, которые больше не используются, и мне нужно очистить базу данных и избавиться от этих запросов.

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Доступ имеет встроенную функцию «зависимости». В результате получается ОЧЕНЬ приятное древовидное представление этих зависимостей, и вы даже можете запускать такие объекты, используя это древовидное представление вашего приложения, чтобы, так сказать, «перемещаться» по приложению.

Параметр находится в разделе инструментов базы данных и соответственно называется «Зависимости объекта».

Результат выглядит следующим образом: enter image description here

Хотя вы не хотите использовать автокоррекцию, эта функция будет принудительно активирована меняется. Если это большое приложение, то при первом запуске произойдет значительная задержка. После этого результаты можно просмотреть мгновенно. Таким образом, большинство разработчиков по-прежнему отключают автозамену трека (часто упоминается как трек с автоматическим уничтожением). Однако для этой функции требуется автоматическое исправление дорожки.

И, к сожалению, вам нужно go запросить запрос, но по крайней мере он будет отображать зависимости для каждого запроса - (формы или отчеты). Тем не менее, VBA код, который создает SQL на лету и использует такие запросы? Хорошо, это не поймает тот случай. Таким образом, в конце концов, удаление запроса может все еще использоваться в коде, и если этот код создает SQL на лету (как в LOT кода VBA, то вы никогда не сможете быть уверены, что запрос не используется в приложении.

Таким образом, средство проверки зависимостей может легко определить, использует ли этот запрос другой запрос, другую форму / подчиненную форму или отчет. Таким образом, средство проверки зависимостей выполняет довольно хорошую работу.

Тем не менее, код VBA - это другое дело, и то, как код VBA запускается и что-то делает, не может быть определено до тех пор, пока такой код на самом деле не будет запущен. По сути, средство проверки зависимостей фактически должно выполнить код VBA и даже затем, иногда код будет делать несколько выборов в отношении того, какой запрос выполнять или использовать - и это определяется кодом. Я предполагаю, что вы могли бы выполнить быстрый «поиск», так как поиск является глобальным для VBA (весь код в модулях, Отчеты и формы можно искать.) Это может найти большинство применений запроса, но не во всех случаях, поскольку, как отмечалось, код VBA часто может и делает es создают sql на лету.

1 голос
/ 07 апреля 2020

У меня смутная часть воспоминаний Access Analyzer из FMS. В c встроена эта функциональность.

В противном случае я вижу 2 варианта, которые могут работать.

  1. Во-первых, вы можете использовать встроенный Документатор баз данных. Это создает отчет, который вы можете экспортировать в Excel. Затем вам нужно будет импортировать это в базу данных и написать некоторый код, который зацикливает запросы, чтобы увидеть, появляются ли они в этой таблице;
  2. В качестве альтернативы, вы можете использовать недокументированную функцию «SaveAsText» для l oop все формы / отчеты / макросы / модули в вашей базе данных, а также зацикливание запросов и сохранение их SQL в текстовый файл. Затем вы должны написать несколько VBA для l oop запросов, открыть каждый из текстовых файлов и проверить наличие запроса.

В любом случае, вместо простого удаления любых неиспользуемых запросов, переименуйте затем что-то вроде «old_Query» и оставьте их на месяц или около того в базе данных на всякий случай !!

С уважением,

...