Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
08.10.2019, 14:45
|
|||
---|---|---|---|
|
|||
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
1 Есть Access и в нем есть готовый запрос с названием «ZZZ2» и с параметром авторSELECT *FROM Tabl1 WHERE QWE=Q; Q – некоторый параметр. И когда я в Access-е его запускаю этот запрос, то Access спрашивает меня чему равно Q…. Я ввожу, например, 3 и Access выдает мне строчку с таким названием. Столбец «QWE» имеет в Access тип «числовой, целое». 2 Есть вторая программа VBA, которая вызывает данный Запрос через ADO и пытается его выполнить…проблема - не могу передать в запрос значение параметра Q . Вот мой код на VBA Excel: ' авторSet c = CreateObject("ADODB.Command") c.ActiveConnection = сonStrRead c.CommandText = "ZZZ2" c.Parameters.append c.CreateParameter("Q", adInteger, adParamInput, , 1) ' Set objRecordset = c.Execute tab_set = objRecordset.getRows() Set objComm = Nothing "Сыпется" вот на этой строке: авторc.Parameters.append c.CreateParameter("Q", adInteger, adParamInput, , 1) Пишет « аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт с друг-другом »…побороть не могу. Помогите! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 15:25
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
открытие запроса из формы: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
А из окна БД: напишите в конструкторе запросов, в строке "условие отбора:"для нужного поля [введите параметр] ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 15:28
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
забыл:Dim strSQL, q AS As QueryDef ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 15:31
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Тьфу: Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 15:32
|
|||
---|---|---|---|
|
|||
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Спасибо! Но у меня обращение идет через VBA Excel к внешней БД Access ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 15:43
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Jiura 1 Есть Access и в нем есть готовый запрос с названием «ZZZ2» и с параметром ..... Вот мой код на VBA Excel: ..... Непонятно,однако, в каком приложении выполняется код (может просто экспортировать выполненный запрос в Ёксель:DoCmd.TransferSpreadsheet) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 15:48
|
|||
---|---|---|---|
|
|||
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Запрос, который надо вызвать хранится в Access А вызов его идет из Excel средствами VBA (нужно в этот запрос добавить параметр и выгрузить данные в ExcL) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 16:07
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
В таком случае это должен быть именно запрос с параметром. У Вас же запрос не с параметром, а с неизвестным литералом, который клиентским интерфейсом MS Access (не его СУБД-системой) запрашивается у клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 16:08
|
|||
---|---|---|---|
|
|||
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Ничего не понял.... Можете пример дать, как сделать чтобы заработало? Может я не совсем верно интерпретирую "параметр" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 16:56
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
См. встроенную справку. Access Developer Reference > Microsoft Access SQL Reference > Data Manipulation Language > PARAMETERS Declaration (Microsoft Access SQL) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 17:38
|
|||
---|---|---|---|
|
|||
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Посмотрел Help, спасибо.. Вроде то что нужно, но не докручено... У меня при подключении через ADO вызов встроенного запроса идет как: авторSet CCon = CreateObject("ADODB.Connection") CCon.Open "" ' Set rs = CreateObject("ADODB.Recordset") rs.ActiveConnection = CCon With rs .Open "ZZZ2", CCon ZZZ2 - имеющийся в Access-е запрос....не могу понять, куда в эту строку писать "параметры"? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 18:08
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
авторc.Parameters.append c.CreateParameter("Q", adInteger, adParamInput, , 1)библиотека АДО, походу, не подключена и Option Explicit не задан В итоге всё "падает" на АДО-константах ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 18:19
|
|||
---|---|---|---|
|
|||
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Точно, на константах сыпалась..... Option Explicit добавили параметры задаются и проходит, но результат все равно не выполняется......падает вот здесь: Set objRecordset = c.Execute Говорит, что ошибочная инструкция SQL: "предполагалось Delete, Insert ..." ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 18:35
|
|||
---|---|---|---|
|
|||
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Все получилось! Спасибо всем кто ответил! Вот код верный: Set c = CreateObject("ADODB.Command") c.ActiveConnection = QQ c.CommandText = "ZZZ2" c.Parameters.append c.CreateParameter("Q", 3) c.Parameters.Item(0) = 2 ' Set objRecordset = c.Execute tab_set = objRecordset.getRows() 'Set objComm = Nothing MsgBox "OK!" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.10.2019, 18:47
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
Jiura, А так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
подключить библиотеку Microsoft DAO 3.6 Object Library ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2019, 09:27
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
JiuraТочно, на константах сыпалась..... Option Explicit добавили параметры задаются и проходит, но результат все равно не выполняется......падает вот здесь: Set objRecordset = c.Execute Говорит, что ошибочная инструкция SQL: "предполагалось Delete, Insert ..." имхо, этого не хватало, что бы заработало Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.10.2019, 09:41
|
|||
---|---|---|---|
Как вызвать из VBA готовый запрос ACCESS с параметром |
|||
#18+
JiuraКак вызвать из VBA готовый запрос ACCESS с параметром читаем - FAQ/MS Access/Как запускать запросы из VBA Объяснено исчерпывающе... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1610436]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 366ms |
total: | 499ms |
0 / 0 |