Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выдает ошибку при использовании SQL запроса из Excel vba - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выдает ошибку при использовании SQL запроса из Excel vba (Макросы/Sub)
Выдает ошибку при использовании SQL запроса из Excel vba
parovoznik Дата: Суббота, 23.01.2016, 19:04 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток.
При использовании SQL запроса выдает ошибку"общая ошибка ODBC". Использую запрос к базе данных Access и вывод на лист Excel
К сообщению приложен файл: 9554789.7z (29.5 Kb)
 
Ответить
СообщениеДоброго времени суток.
При использовании SQL запроса выдает ошибку"общая ошибка ODBC". Использую запрос к базе данных Access и вывод на лист Excel

Автор - parovoznik
Дата добавления - 23.01.2016 в 19:04
_Boroda_ Дата: Суббота, 23.01.2016, 19:42 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня вот так работает (с полным путем и с куском DSN=MS Access Database)
[vba]
Код
Sub SQLQuery_1()
    Dim varConn As String
    Dim varSQL As String

        Range("A1").CurrentRegion.ClearContents

        varConn = "ODBC;DSN=MS Access Database;DBQ=D:\Стереть\пример\База данных7.accdb;Driver={Driver do Microsoft Access (*.accdb)}"

        varSQL = "SELECT Имя, Фамилия, Должность FROM Таблица1"

             With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1"))
                 .CommandText = varSQL
                 .Name = "Query-39008"
                 .Refresh BackgroundQuery:=False
             End With

End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня вот так работает (с полным путем и с куском DSN=MS Access Database)
[vba]
Код
Sub SQLQuery_1()
    Dim varConn As String
    Dim varSQL As String

        Range("A1").CurrentRegion.ClearContents

        varConn = "ODBC;DSN=MS Access Database;DBQ=D:\Стереть\пример\База данных7.accdb;Driver={Driver do Microsoft Access (*.accdb)}"

        varSQL = "SELECT Имя, Фамилия, Должность FROM Таблица1"

             With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1"))
                 .CommandText = varSQL
                 .Name = "Query-39008"
                 .Refresh BackgroundQuery:=False
             End With

End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 23.01.2016 в 19:42
parovoznik Дата: Суббота, 23.01.2016, 19:59 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо все работает :'(
 
Ответить
Сообщение_Boroda_, спасибо все работает :'(

Автор - parovoznik
Дата добавления - 23.01.2016 в 19:59
krosav4ig Дата: Суббота, 23.01.2016, 20:12 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
немного опоздал :(
добавлю, что диапазон нужно не просто очищать, а удалять, ибо остаются подключения
добавил еще 1 вариант на Лист2
[vba]
Код
Sub SQLQuery_1()
    Dim varConn As String
    Dim varSQL As String
    
    Range("A1").CurrentRegion.Delete xlUp
    
    varConn = "ODBC;DSN=MS Access Database;DriverId=25;DBQ=База данных7.accdb_;DefaultDir=" & ThisWorkbook.Path
    varSQL = "SELECT Имя, Фамилия, Должность FROM Таблица1"
    
    With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1"))
        .CommandText = varSQL
        .Name = "Query-39008"
        .Refresh BackgroundQuery:=False
    End With
End Sub
[/vba]
К сообщению приложен файл: SQL_.xlsm (28.2 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 23.01.2016, 20:12
 
Ответить
Сообщениенемного опоздал :(
добавлю, что диапазон нужно не просто очищать, а удалять, ибо остаются подключения
добавил еще 1 вариант на Лист2
[vba]
Код
Sub SQLQuery_1()
    Dim varConn As String
    Dim varSQL As String
    
    Range("A1").CurrentRegion.Delete xlUp
    
    varConn = "ODBC;DSN=MS Access Database;DriverId=25;DBQ=База данных7.accdb_;DefaultDir=" & ThisWorkbook.Path
    varSQL = "SELECT Имя, Фамилия, Должность FROM Таблица1"
    
    With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1"))
        .CommandText = varSQL
        .Name = "Query-39008"
        .Refresh BackgroundQuery:=False
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 23.01.2016 в 20:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выдает ошибку при использовании SQL запроса из Excel vba (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!