powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как создать скрытый запрос на VBA
10 сообщений из 10, страница 1 из 1
Как создать скрытый запрос на VBA
    #39386173
Адеке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаю запрос
Set qry = CurrentDb.CreateQueryDef("имяЗапроса")
Но как дать ему атрибут "скрытый"?
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386217
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формально
Код: sql
1.
2.
3.
4.
UPDATE [MSysObjects]
SET [Flags] = [Flags] AND 8
WHERE [Name] = "Имя Запроса"
AND [Type] = 5


Вот только хрен он даст...
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386236
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
Application.SetHiddenAttribute acQuery, "Query1", True
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386237
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кстати, если это просто временный запрос, не давайте ему имя, запрос будет удален после использования автоматически.
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386252
Адеке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin
Код: vbnet
1.
Application.SetHiddenAttribute acQuery, "Query1", True



Спасибо. Пашет.
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386269
Адеке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShinДа, кстати, если это просто временный запрос, не давайте ему имя, запрос будет удален после использования автоматически.
Да, угадали, это временный вопрос. Создаю временный запрос на сервер. Но через него надо сделать INSERT на локальную таблицу и удалить этот временный запрос. Возможно ли в этом случае обратиться на этот безымянный запрос?
Т.е. спрева
Код: vbnet
1.
2.
3.
4.
    Set qry = CurrentDb.CreateQueryDef("имяЗапроса")
    qry.Connect = "ODBC;Driver=SQL Server;Server={Сервер};Database=База;UID=юзер;PWD=пароль;"
    qry.ReturnsRecords = True
    qry.SQL = "текст запроса или вызов хранимой процедуры"



потом
Код: vbnet
1.
CurrentDb.Execute "INSERT INTO tbl... SELECT ... FROM имяЗапроса"



А возможно ли разом, без сохранения временного запроса?
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386279
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, ко временному запросу можно обратиться только через переменную qry. Если запрос используется в нескольких местах, создаете постоянный именной запрос, используете, потом удаляете, но если используется один раз, ничего не мешает сделать так:

Код: vbnet
1.
2.
3.
4.
5.
    Set qry = CurrentDb.CreateQueryDef("") ' У временного запроса имя пустое
    qry.Connect = "ODBC;Driver=SQL Server;Server={Сервер};Database=База;UID=юзер;PWD=пароль;"
    qry.ReturnsRecords = False
    qry.SQL = "INSERT INTO tbl... SELECT ... FROM (текст вашего запроса на выборку) "
    qry.Execute dbFailOnError
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386287
Адеке
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

в таком случае INSERT выполнится на сервере, а не у меня. А мне надо скачать данные с сервера к себе.
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386564
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл убрать коннект
Код: vbnet
1.
2.
3.
    Set qry = CurrentDb.CreateQueryDef("") ' У временного запроса имя пустое
    qry.SQL = "INSERT INTO tbl... SELECT ... FROM (текст вашего запроса на выборку) "
    qry.Execute dbFailOnError


При этом таблицы, входящие в ваш запрос уже должны быть прилинкованы к текущей базе. Если не хотите линковать по соображениям безопасности/производительности или сложности с конвертацией серверного запроса в формат Акцесса, то без создания промежуточного постоянного запроса с именем не обойтись, далее делаете как сами предложили. После выполнения запрос можно удалить.
...
Рейтинг: 0 / 0
Как создать скрытый запрос на VBA
    #39386674
PaulB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем такие сложности?
ConStr = "ODBC;DRIVER={SQL Server};SERVER=SSSSS;DATABASE=DDDDD;UID=UUUUU;PWD=PPPPPP;APP=Microsoft Office 2013"
currentdb.execute "UPDATE [" & ConStr & "].ТаблицаНаСервере SET Код=-1 WHERE Код=-1;",dbfailonerror

или

DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE [" & ConStr & "].ТаблицаНаСервере SET Код=-1 WHERE Код=-1;"
DoCmd.SetWarnings True
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как создать скрытый запрос на VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]