MS-доступ: как сделать правильный запрос? - PullRequest
0 голосов
/ 22 октября 2010

Я распространяю внешние интерфейсы ms-access-2007.задний конец - сервер sql.пользователь нажимает кнопку и возвращает запрос из базы данных sql server 2008.

возможно ли запросить этот запрос, если пользователь снова нажмет кнопку?

Обычно поведение доступа таково, что при повторном запросе он отображает старые результаты.как мне сделать так, чтобы результаты обновлялись?

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

Если вы знаете, что запрос все еще является ActiveDatasheet, запросите следующее:

  Screen.ActiveDatasheet.Requery

Если вы этого не знаете (вы можете проверить Screen.ActiveDatasheet.Name), вы можете открыть его снова (чтоможет или не может запрашивать, если запрос уже открыт - я бы ожидал, что нет, но я могу ошибаться), и тогда это будет ActiveDatasheet, и вы можете запросить это.

Или вы могли быdo:

  DoCmd.SelectObject acQuery, "NameOfYourQuery"
  Screen.ActiveDatasheet.Requery

Конечно, один или несколько из этих методов будут работать.

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

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

0 голосов
/ 22 октября 2010

Если ваши данные находятся в форме, связанной с таблицей Access или запросом, связанным с Sql Server, то form.requery сделает свое дело.

при повторном запросе отображаются старые результаты

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...