Приходится закрывать мой запрос в Microsoft Access 2013 каждый раз, когда я хочу запустить форму

каждый раз, когда я хочу запустить форму, которая выполняет поиск в моей базе данных и возвращает результаты на основе определенных полей (логин, дата и т. д.), я должен закрыть запрос, если я хочу изменить критерии поиска. Например, если я ищу логин «Джон», я получаю все эти результаты, но если я затем хочу найти «Джерри», мне нужно сначала закрыть запрос с данными, а затем повторно запустить форму.

Есть ли что-нибудь вокруг этого?


person johnnyappleseed    schedule 27.06.2014    source источник
comment
Вероятно, вы можете решить свою проблему с помощью нескольких строк кода VBA. Вы действительно используете MySQL в качестве базы данных? Если нет, удалите тег mysql.   -  person VMai    schedule 27.06.2014
comment
Я не очень хорошо знаю VBA. Есть ли другой простой способ решить проблему?   -  person johnnyappleseed    schedule 27.06.2014
comment
Или, если нет способа сделать это, есть ли команда кнопки в форме, которую я могу добавить, которая обновит данные запроса?   -  person johnnyappleseed    schedule 27.06.2014
comment
Я не знаю вашего приложения, но это похоже на путь. Обычно после нажатия кнопки формы доступа выполняется код VBA.   -  person VMai    schedule 27.06.2014
comment
Знаете ли вы какие-либо конкретные команды, которые могут это сделать? Я просмотрел их все и не мог понять, что использовать   -  person johnnyappleseed    schedule 27.06.2014
comment
Это зависит от вашего приложения. Я не знаю, как вы реализовали форму поиска.   -  person VMai    schedule 27.06.2014
comment
Форма появляется как окно и вызывает запрос под названием «Результаты», который связан с 7 таблицами. У меня есть кнопка поиска, которая принимает поля в форме и обновляет соответствующие столбцы в запросе.   -  person johnnyappleseed    schedule 27.06.2014
comment
Возможно, stackoverflow.com /questions/3991948/ может дать вам хороший совет.   -  person VMai    schedule 27.06.2014


Ответы (1)


--Это относится как к методу Закрыть, так и к методу Открытие.

-- То же самое относится ко всем объектам, не только к запросу, но и к форме и т. д.

Чтобы закрыть запрос, вы можете использовать следующий код.

DoCmd.Close acQuery, "Queryname", acSaveNo

Чтобы объяснить это лучше,

DoCmd.Close — это метод

он принимает следующие параметры.

  1. Что закрывать (тип объекта: acQuery, acForm и т.д.)
  2. Имя объекта (в данном случае Имя запроса)
  3. Действие, выполняемое при закрытии (acSaveYes,acSaveNo,acSavePrompt).

Помните: при сохранении фактически сохраняется объект (в данном случае запрос), а не данные. Чтобы избежать случайного изменения запроса. Я рекомендую закрывать объект без сохранения (если только это не требуется и вы не знаете, что делаете)

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

acSaveNo: это закрытие запроса без сохранения. Если у вас есть пользователи, которые хотели бы просто просмотреть данные и не изменять запрос, это полезно.

acSavePrompt: Это просто подсказка, сохранить объект или нет.

Совет. Если во время написания запроса IntelliSense работает, это означает, что ваш холод действителен.

ссылка: https://msdn.microsoft.com/en-us/library/office/ff192860%28v=office.15%29.aspx

person Avi    schedule 27.01.2015