x67
@x67

Какие методы обмена информацией с удаленными объектами через excel vba существуют?

Пишу скрипт, который будет выполняться на сервере 24/7, что можно использовать для того, что бы пользователь мог зайдя в книгу excel по выполнению макроса получить данные с сервера? Я пока что придумал только дикий костыль в виде экспорта почты из outlook, но хотелось бы обойтись без лишних программ и с минимальным количеством библиотек. Возможно вы знаете решение через google spreadsheets (пишу на python)? Однако excel предпочтительнее.
  • Вопрос задан
  • 255 просмотров
Решения вопроса 1
bopoh13
@bopoh13
VBA, Ruby (noob), analytic
Запрос к БД MS SQL из Excel — какой драйвер применять? - любой драйвер на выбор :)
К таблице Excel лучше так не подключаться (нельзя чтобы файл был занят).
Option Explicit
'12345678901234567890123456789012345bopoh13@ya67890123456789012345678toster56789

Sub TestADO()
  Dim Conn As Object, Rec As Object
  
  On Error GoTo ErrMsg ' Создание подключения через драйвер
    Set Conn = CreateObject("ADODB.Connection") ' Открываем Connection
    Conn.ConnectionTimeout = 5
    Conn.Mode = 1 ' 1 = adModeRead, 2 = adModeWrite, 3 = adModeReadWrite
    Str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $dbPath & ";"
    ' Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""
    'Str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & $dbPath & ";"
    'Str = Str & "Jet OLEDB:Engine Type=6;" ' Тип подключения (не используется)
    Str = Str & "Jet OLEDB:Encrypt Database=False;"
    Str = Str & "Jet OLEDB:Database Password=" & $passDB & ";"
    ' Системная таблица Access 2003 (файлы *.mdb) 
    'Str = Str & "Jet OLEDB:System database=" & $mdwPath
    
    Conn.Open ConnectionString:=Str ', UserId:="$admin", Password:=""
    Debug.Print "Conn.State="; Conn.State
    
    Set Rec = CreateObject("ADODB.Recordset") ' Создаём RecordSet для чтения данных
    ' ...
    Set Rec = Nothing: Set Conn = Nothing
  On Error GoTo 0: Exit Sub
  
ErrMsg:
  MsgBox Str & String(2, vbCrLf) & "Provider=" & Conn.Provider, _
    vbOKOnly + vbCritical, "Error: " & Err.Number & ", AppVer: " _
    & Val(Application.Version): Set Rec = Nothing: Set Conn = Nothing
End Sub
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ЛАНИТ Москва
До 80 000 руб.
ProfitClicks Краснодар
от 80 000 руб.
СМАРТ-СОФТ Волгоград
от 60 000 до 90 000 руб.
21 сент. 2019, в 21:51
80000 руб./за проект
21 сент. 2019, в 21:07
700 руб./в час