Общая ошибка ODBC в VBA - PullRequest
       19

Общая ошибка ODBC в VBA

0 голосов
/ 09 июня 2010

Привет, я заполняю данные из MS Access с помощью VBA. Я использую приведенный ниже код. Если я запускаю тот же код в MS 2007, тогда он работает правильно, но если я запускаю тот же код в MS 2003, он дает " Общая ошибка ODBC "как решить эту проблему Любая помощь будет оценена !!

Заранее спасибо

Sub Button2_Click()
Dim varConnection As String
Dim varSQL As String
Dim cal, cal1, x

 varConnection = "ODBC; DSN=MS Access Database;DBQ=D:\Box\Generate.mdb;Driver={Driver do Microsoft Access (*.mdb)}"
'
       varSQL = "SELECT * FROM Empdata"

       With ActiveSheet.QueryTables.Add(Connection:=varConnection, Destination:=ActiveSheet.Range("C7"))

               .CommandText = varSQL

               .Name = "Query-39008"

               .Refresh BackgroundQuery = False
       End With

End Sub

Ответы [ 2 ]

1 голос
/ 22 июня 2010

Привет, теперь мой код отлично работает и в формате 2003: просто хочу поделиться с вами своей идеей, создать новое соединение с источником данных, выполнив следующие шаги

1) Выберите Пуск -> Панель управления-> Администрирование

2) Выберите значок источника данных (ODBC)

3) В диалоговом окне «Администратор источника данных» нажмите кнопку «Добавить»

4) Выберите драйвер Нажмите «Готово»Кнопка

5) Введите DNS-имя (определение пользователя).Выберите базу данных, нажав кнопку «Выбрать»

Я записываю макрос с помощью (Инструменты -> Макросы - Запись макросов) в моем листе MS 2003 Excel Перед импортом данных из БД,

Шагидля импорта данных из БД.

1) Выберите ячейку, в которую вы хотите вставить данные.

2) Выберите в меню Excel: Данные -> Импортировать внешние данные -> импорт данных

3) В диалоговом окне «Выбор источника данных» нажмите кнопку «Новые источники»

4) Выберите «ODBC DNS», нажмите «Далее»

5) Выберите «Таблица источников данных» и нажмитеследующий

6) Выберите таблицу из списка. Нажмите кнопку «Готово»

7). В диалоговом окне «Выбор источника данных» выберите имя источника DNS, затем нажмите кнопку «ОК» * Кнопка

8)Теперь остановите макросы, перейдите к просмотру кода, вы получите полный код для подключения импорта данных, измените путь в зависимости от вашей программы

0 голосов
/ 09 июня 2010

Это сработало для меня в 2003 году, но, конечно, мне пришлось изменить строку подключения. Я не могу поверить, что строка подключения будет заботиться о том, какую версию вы используете, но вот что вы можете сделать. Создайте таблицу запросов с помощью пользовательского интерфейса (Данные - Получить внешние данные - Новый запрос к базе данных), затем перейдите в окно немедленных действий (Alt + F11, Control + G) и введите

?ActiveCell.QueryTables.Connection

и посмотри, что получишь. Если он не совпадает со строкой соединения, которую вы используете в своем коде, это может быть подсказкой, почему он работает в одном, а не в другом.

...