2016-01-08 3 views
1

Мне нужен макрос Word, который подключается к Oracle-Dateabase, получает некоторую информацию и помещает ее в мой документ.Word-Macro: Соединение Oracle DB

Первый шаг - подключение к базе данных. Я нашел следующий код на http://dbaforums.org/oracle/index.php?showtopic=2071

'-------------------------------------- 
' create and open connection 
'-------------------------------------- 
Dim oCn As New ADODB.Connection 
oCn.Open "Driver={Microsoft ODBC for Oracle};" & _ 
"Server=myserver;" & _ 
"Uid=gh_pc;" & _ 
"Pwd=gh_pc" 

'--------------------------------------- 
' open recordset 
'--------------------------------------- 
Dim oRs As New ADODB.Recordset 
Set oRs = oCn.Execute("SELECT * FROM pc_ficha_clinica") 
While Not oRs.EOF 
Debug.Print oRs.Fields(0).Value 
oRs.MoveNext 
Wend 
'--------------------------------------- 
' cleanup 
'--------------------------------------- 
oCn.Close 
Set oRs = Nothing 
Set oCn = Nothing 

Это не работает, потому что отсутствует ссылка на ADOB.Connection. Появляется следующая ошибка (для меня ее немецкий, я переводил ее здесь).

The User defined Type is not declared

Мне нужно знать, как ссылаться на это или как еще для подключения к базе данных. Если невозможно подключиться к базе данных Oracle, используя Word Makco, я бы тоже хотел это знать.


EDIT Решение найдено Dirk Фольмаром и Wernfried Домшайт:

Tools - References - добавить Microsoft ActiveX Data Objects

Подсказка для тех, кто не может нажать на ссылки вариант: Перейти к Run->Reset и попробуйте еще раз

+0

Надеюсь, у пользователя есть привилегии только для чтения в ограниченную серию таблиц. Разве это не кажется вам проблемой безопасности? – kevinsky

+1

Пользователь базы данных имеет ограниченные права только на несколько таблиц (только для выбора). Я буду пытаться сделать так, чтобы входной логин не читал текст, а макро может быть даже pwd сохранен. Но это еще одна проблема, о которой я буду заботиться позже. Я уверен, что есть способы! – Luke

ответ

2

кажется, что вам все еще нужно добавить ссылку на АДО библиотека. Вы можете сделать это с помощью меню Tools -> References ... редактора VBA.

Их необходимо выбрать в библиотеке библиотеку объектов Microsoft ActiveX в версии, которую вы хотите использовать (и любые зависимые сборки также).

+0

Я обнаружил, что в Интернете уже, к сожалению, мне не удалось найти «Сервис-меню». Существует одна иконка с Tooltip (german: Werkzeugsammlung) Toolcollection, которая неактивна. – Luke

+0

http://www.mrexcel.com/forum/excel-questions/214952-tools-references-always-grayed-out.html 'Убедитесь, что вы не находитесь в режиме прерывания. Попробуйте нажать Run-> Reset. И теперь? «Не разрешил проблему для меня. – Luke

+0

@ Luke Вы можете загрузить и установить ADO с веб-сайта Microsoft, например https://www.microsoft.com/en-us/download/details.aspx?id=5793. Существуют разные версии. И вот список того, что он содержит, в общем. https://msdn.microsoft.com/en-us/library/ms675795(v=vs.85).aspx. –

1

Вам необходимо обратиться к библиотеке ADODB.

Перейти к меню Сервис -> Ссылки -> Выберите «Microsoft ActiveX Data Objects 2.7 Library» (или любой другой версии вы хотите использовать или есть)

+0

См. Комментарии Дирка Фольмара. Спасибо за вашу помощь. – Luke

Смежные вопросы