
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.10.2008, 09:21
|
|||
|---|---|---|---|
|
|||
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
Добрый день! В общем написал небольшой код для навигации по БД посредством ADODB. С целью придания читабельности, пытался передать в процедуру объект ADODB.Connection (Command, RecordSet) по ссылке (ByRef). В итоге в процедуру передалось только свойство ConnectingString объекта ADODB. В случае RecordSet в процедуру передается RecordSet.Fields. Подскажите пожалуйста, можно ли в VBA передать объект ADODB в процедуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 09:47
|
|||
|---|---|---|---|
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
Между разными приложениями (в т.ч. dll-ками) Connection не передастся. только строка подключения. А ByRef лучше не злоупотреблять. Если из вызываемой процедуры не должен возвратиться рекордсет или т.п., то ByVal ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 10:02
|
|||
|---|---|---|---|
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
WorobjoffМежду разными приложениями (в т.ч. dll-ками) Connection не передастся.Передается, но только в скомпилированном виде. Но с VBA видимо все равно не проканает. LanSodВ случае RecordSet в процедуру передается RecordSet.FieldsА нужно указывать тип параметра. Fields — свойство по умолчанию, вот евойный объект и передается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 10:14
|
|||
|---|---|---|---|
|
|||
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
> Автор: Antonariy > LanSod > В случае RecordSet в процедуру передается RecordSet.Fields > А нужно указывать тип параметра. Fields — свойство по умолчанию, вот евойный объект и передается. +100 -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 10:40
|
|||
|---|---|---|---|
|
|||
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
Спасибо за ответы. Хочу вынести из основного тела программы команды создания объектов Connection, Command, RecordSet, а также их закрытия, т.е. хочу получить что-то вроде: myConnect(...) - Подключение к БД ... Работа с БД - комманды Move, AddNew и т.д. ... myClose (...) - Отключение от БД Процедура myConnect должна возвращать созданный объект типа ADODB.Connection и полученный в соответствии с Сommand объект ADODB.RecordSet. Затем в основном теле программы полученный RecordSet обрабатывается (Move, AddNew и т.д.) и в myClose осуществляется закрытие переданных в процедуру объектов ADODB.Connection и ADODB.RecordSet. Все данные операции выполняются в одном программном модуле Excel, т.е. передача между различными приложениями не планируется. Пытался также явно указывать тип параметра, например: Sub test(a As ADODB.Recordset) a.MoveFirst End Sub Что приводит к ошибке 13 несовпадения типов. Я тока недавно использую VBA, может что то напутал с типом параметров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 11:02
|
|||
|---|---|---|---|
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 12:50
|
|||
|---|---|---|---|
|
|||
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
Сделал так же у себя: в итоге ADODB.Connection и ADODB.Command нормально работают, а ADODB.RecordSet так и не возвращается из процедуры. Уже все варианты перебрал :( Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Не совсем понял что делает оператор Call, подскажите пожалуйста в двух словах для чего он нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 13:17
|
|||
|---|---|---|---|
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
Call ничего не делает, это элемент синтаксиса, оставшийся от предыдущих версий бейсика. Записи Код: plaintext 1. автора ADODB.RecordSet так и не возвращается из процедуры Sub myConnect(ByVal myCon As ADODB.Connection, ByVal myCom As ADODB.Command, ByRef myRS As ADODB.Recordset) Срочно читать справку по ByVal/ByRef. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 13:31
|
|||
|---|---|---|---|
|
|||
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
Спасибо всем, заработало!!! Дело в том, что изначально делал как раз через ByRef, т.е. пытался передать ссылку на объект, а не его значение, но не работало. В общем надо отдыхать!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 14:09
|
|||
|---|---|---|---|
|
|||
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
> Автор: LanSod > Спасибо всем, заработало!!! > Дело в том, что изначально делал как раз через ByRef, т.е. пытался передать ссылку на объект, а не его значение, > но не работало. В общем надо отдыхать!!! А если ошибка? Может лучше переделать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2008, 14:37
|
|||
|---|---|---|---|
|
|||
Можно ли в VBA передать объект ADODB в процедуру? |
|||
|
#18+
Спасибо за предложенный вариант, следующим этапом как раз и хотел добавить обработку ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=net_jackal&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
140ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 692ms |
| total: | 958ms |

| 0 / 0 |
