![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 11.05.2011
Сообщений: 3
|
![]()
Вобщем вопрос такой: в макросе для EXCEL нужно использовать достаточно объёмный скрипт, если ввести его в строку для SQL запроса, получится как минимум нечитабельно, а о том чтобы что-то поправлять в такой строке с запросом не может идти и речи.
Так вот, есть ли возможность в качестве параметра при выполнении запроса использовать не строку с SQL запросом, а указать файл в котором лежит скрипт? То есть примерно в таком вот коде Dim cnt As ADODB.Connection Dim rec As ADODB.Recordset Set cnt = New ADODB.Connection cnt.Open <строка подключения> rec.Open 'Select * from Table1', cnt cnt.Close Вместо строки с Select использовать хранимый в отдельном файле скрипт '*.sql' Я в VBA совсем ничего не знаю, так что спрошу сразу ещё - что из себя представляет запись Recordest? То есть, можно ли её за одну-две команды вывести в новый лист экселя (не пробегая next по каждому field), и также, без цикла, залить всю эту запись в другую БД? |
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
![]() Цитата:
2. посмотрите пример как выводятся данные на лист http://www.programmersforum.ru/showthread.php?t=161220
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 11.05.2011
Сообщений: 3
|
![]()
1) Эх, жаль конечно, ладно попробую преобразовывать. Тут идея вот в чём заключалась: я хотел предоставить возможность не работающим с VBA людям поправить или заменить в последующем один или несколько из sql скриптов, чтобы при этом сам модуль не потерял работоспособности.
2) Спасибо, однако как быть с загрузкой в другую БД? Проще сразу делать это в sql запросе, или всё же можно, подсоединившись к другой базе, внести таблицу из этого объекта, примерно также красиво, одной-двумя строчками? |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
![]() Цитата:
если только построчно, массивом не получиться Я бы для таких целей использовал ETL который специально для этого и заточен.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 11.05.2011
Сообщений: 3
|
![]()
Хотелось бы узнать поподробнее.
На всякий случай опишу более подробно и проблему. Есть база MSSQL, к которой я имею доступ только на чтение нескольких таблиц и к которой не имею возможности обращаться с базы Oracle. Есть база Oracle, в которой я могу создавать что угодно. Есть Excel, в котором формируется отчёт. Скрипты по выбору данных для отчёта удобно формируют вьюхи на оракловых базах, так что проблема 1 отпала. Однако теперь особенно остро стоит проблема отправки данных, полученных в Recordset из MSSQL, в базу Oracle. Так как последний этап проходит в Экселе, все предыдущие было решено также провести в нём. То есть, взаимодействие между базами должно осуществляться средствами VBA. Очень прошу, посоветуйте как лучше сделать. P.S. можно ли к записи обратиться Selectом, сменив ей Activeconnect или создав новый Recordset с Activeconnect = OracleConnect? Последний раз редактировалось Pingy; 28.07.2011 в 14:52. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
Stringgrid, Procedure, cells[m,n]:=DynMas[a,b]. Очередной вопрос начинающего (#003) | Albert2008 | Компоненты Delphi | 4 | 04.08.2008 12:00 |
Procedure,function,Stringgrid (#004) Очередной вопрос начинающего. | Albert2008 | Компоненты Delphi | 4 | 01.08.2008 21:30 |
Stringgrid, cells[m,n] и двумерные массивы.(#002) Очередной вопрос начинающего. | Albert2008 | Компоненты Delphi | 4 | 28.07.2008 19:02 |
Видимо очередной вопрос по БД... | Amaranth | Помощь студентам | 1 | 16.12.2007 00:56 |