Страницы: 1
RSS
[ Закрыто ] Подключение к Базе данных Oracle из Excel с помощью VBA
 
Добрый день!
Вся надежда на вас! К сожалению, познания в VBA очень скудны. Без вашей помощи не обойтись. Мне необходимо осуществить следующее: необходимо написать макрос в Excel. Цель такая: нужно, чтобы нажимая кнопку сотрудник любого филиала получал выгрузку из базы данных одного программного обеспечения Oracle. При этом нужно, чтобы макрос подключил пользователя к базе. Через excel осуществила подключение через Microsoft Query. Драйвер указала как "Microsoft ODBC for Oracle" (правильно ли именно его использовать?), пользователь (допустим) Crent, Пароль Bercut, Сервер Chief. Соединение прошло успешно. Далее нужно, чтобы выгружалась определенная таблица этой базы данных (например) xclient_class. Но как это прописать в VBA так, чтобы я могла это все это могла реализовать без ручной настойки непонятно. Просмотрела много литературы, но постоянно какие-то ошибки. Пожалуйста, помогите!!! Буду осень признательна за помощь.
 
Почему Вы выбрали такой громоздкий путь?
Это - из серии "Слон и Моська".   :D  
У Вас соединение прошло успешно, а что будет в филиалах?
Не завидую Вашим филиальным операционистам.   ;)  
ПО на платформе Oracle не может быть примитивным: в нем не может отсутствовать цивилизованный экспорт в EXCEL.
Изучите шаблоны экспорта Вашего ПО во все форматы, которые в нем предусмотрены.
Полагаю, Вы обнаружите не только формат EXCEL.
Научить операционистов, "денно и нощно сидящих в ПО", шаблонному экспорту в файл из ПО в нужный каталог в нужном формате - элементарно.
Ну, а далее: старт Вашего макросного файла.
Макрос сам "найдет" экспортный файл из ПО, и выполнит то, что будет заложено в алгоритм макроса.
 
Цитата
Мотя пишет: ПО на платформе Oracle не может быть примитивным
всякое в жизни бывает.   ;)
F1 творит чудеса
 
"Серьезные" организации кустарные поделки, как правило, не покупают.   :)
 
Целых два небесспорных допущения ))
Ну, будем надеяться  
F1 творит чудеса
 
Смысл данной работы в том, чтобы начальники в филиалах имели возможность в любую минуту выгрузить нужную информацию, не прибегая к написанию скриптов для выгрузки данных из базы (база программного обеспечения, используемого в организации). С экспортом в эксель из БД проблем нет. Но нужно, чтобы данные подгружались именно после нажатия определенной кнопки в Excel (кнопок будет несколько и к каждой будет привязан скрипт на выгрузку определенной информации). Хочу в дальнейшем настроить фильтр, чтобы выгружался только нужный филиал. Смысл еще в том, чтобы максимально автоматизировать работу сотрудников, чтобы им не пришлось ручками ни соединяться к БД, ни устанавливать как вариант developer для выгрузки данных, чтобы выгружать нужную им информацию в Excel. Помогите, пожалуйста, с реализацией задуманного. Какой код VBA можно было бы использовать для подключения к базе? Заранее большое спасибо!
Изменено: hipersa - 29.09.2014 20:03:49
 
Код
Sub ImpOracle()
Set cn = CreateObject("ADODB.Connection")
       cn.Open "Provider=MSDAORA.1;Data Source=Chief;Password=Bercut;User ID=Crent"
'========================================================================================
sSql = "select * from xclient_class"
Set Rs = GetRs(sSql, cn)
sheets(1).[a1].copyfromrecordset rs
Rs.Close
Set Rs = Nothing
end sub
Function GetRs(sstr, cn)
Set rstdata = CreateObject("ADODB.Recordset")
    rstdata.Open sstr, cn
    Set GetRs = rstdata
Set rstdata = Nothing
End Function
 
 
Цитата
Мотя пишет: "Серьезные" организации кустарные поделки, как правило, не покупают.
"Некустарные", как правило не отвечают запросам конечных пользователей  :) , либо отвечают, за "очень серьезные" деньги.
 
Цитата
hipersa пишет: Но нужно, чтобы данные подгружались именно после нажатия определенной кнопки в Excel (кнопок будет несколько и к каждой будет привязан скрипт на выгрузку определенной информации).
Одна из 2-х ситуаций:
1. ПО - "кривое", то бишь, кустарное.
2. Начальники ничего слаще морковки, EXCEL, не признают!
Цитата
hipersa пишет: Хочу в дальнейшем настроить фильтр, чтобы выгружался только нужный филиал.
Неужели ПО не определяет права пользователя?!   :D  
Цитата
B.Key пишет: "Некустарные", как правило не отвечают запросам конечных пользователей , либо отвечают, за "очень серьезные" деньги.
Общеизвестно, СКУПОЙ ПЛАТИТ ДВАЖДЫ!
 
B.Key, большое вам спасибо за код, за вашу помощь и за потраченное время! Очень вам благодарна. Все работает!!!  :)
 
Вы не правы.
Стоимость нормочаса oracle спеца, в крутой конторе, стоит 200$, стоимость нормочаса крутого спеца excel 20$.
Срок исполнения данной задачи "oracle спеца в крутой конторе" 1 день ТЗ, 2-5 дней подписание документов, 2-7(возможно и меньше) дней выполнение.
Срок исполнения данной  задачи  "крутого спеца excel" максимум 1 час.
Зачем платить больше, если второй сделает лучше.
--------
Скрытый текст
Изменено: B.Key - 29.09.2014 20:49:30
 
Цитата
B.Key пишет:
Стоимость нормочаса oracle спеца, в крутой конторе, стоит 200$, стоимость нормочаса крутого спеца excel 20$.
Любопытно, однако.
Общеизвестно: лучше иметь дело с качественным ПО, чем с разного рода "крутыми" спецами.  :D
В "серьезных" организациях ни с какими  "крутыми спецами" никогда не будут иметь дела.
 
Я не буду вступать с Вами в полемику, скажу лишь одно:
-В хороших организациях сотрудники умеют считать деньги.
-В "серьезных" организациях сотрудники умеют бездумно тратить деньги, даже не понимая сколько это стоит на самом деле.
---------
Что говорить, "совок" привык так жить.
 
Цитата
hipersa пишет: Все работает!!!
Пользуйтесь на здоровье и экономьте Ваши средства  :)
 
Цитата
B.Key пишет: Я не буду вступать с Вами в полемику...
Почти, цитаты "от министра финансов", когда он затягивает песню "Разговор в пользу бедных".   :D
 
Хватит флудерства.
Тему закрыл.  
Страницы: 1
Наверх