Запрос Excel из файла access.accdb на защищенном паролем сайте

Таким образом, я могу загрузить файл .accdb с сайта sharepoint в нашей компании, используя запрос POST и объект MSXML2.ServerHTTP60, поставляя пароль интрасети и т. Д. Все в Excel VBA. Круто!

С этим загруженным файлом я могу запускать запросы против него, используя следующий код:

Dim connXXX As ADODB.Connection Dim aQuery As String Dim p As String Dim res As Object Dim connStr As String p = ThisWorkbook.Path & "\testBASE1.accdb" connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & p aQuery = "SELECT Header1 FROM Table1 WHERE ID = 4" Set connXXX = New ADODB.Connection connXXX.Open connStr Set res = connXXX.Execute(aQuery) MsgBox res.Fields(0) 

То, что я ДЕЙСТВИТЕЛЬНО хочу сделать, это вырезать загрузку файла в целом, поэтому я могу запустить запрос против файла .accdb, размещенного в интрасети.

Я пробовал несколько вариантов этого кода, используя .connectionString или добавляя «URL =» вместо datasource … все безрезультатно; Я не могу понять, где я бы поместил имя пользователя / пароль в интрасеть … пожалуйста, помогите! Я всегда получаю свои ошибки вокруг части кода connXXX.open.

1) Возможно ли это и 2) Как ?!

Сломанный код:

 'ppp = "http://the_intranet_address_and_filename_with_extension" 'ppp = "URL=http://the_intranet_address_and_filename_with_extension" '' I've tried both above connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" aQuery = "SELECT Header1 FROM Table1 WHERE ID = 4" connStrBig = connStr & "Data Source=" & ppp connXXX.Provider = connStr connXXX.ConnectionString = ppp connXXX.Open 

Подключение к защищенным паролем БД доступа через VBA затруднительно – я обнаружил, что синтаксис, предложенный Microsoft, даже не работает … Я получил соединения DAO для работы с защищенными паролем БД, см. Код ниже – надеюсь, вы можете играть тот же синтаксис для работы с ADO или просто переключить все вместе:

 Public Sub sampleCode() Dim db As DAO.Database Dim dbPath As String Dim aQuery As String Dim pword As String Dim rs As DAO.Recordset dbPath = ThisWorkbook.Path & "\testBASE1.accdb" pword = "password" aQuery = "SELECT Header1 FROM Table1 WHERE ID = 4" Set db = Access.DBEngine.Workspaces(0).OpenDatabase(dbPath, True, False, ";PWD=" & pword) Set rs = db.Execute(aQuery) rs.MoveFirst MsgBox rs.Fields(0) End Sub 

Надеюсь, это поможет, TheSilkCode

  • Переопределить значения доступа в таблице с данными excel, которые могут быть пустыми vba
  • Поставщик Microsoft.ACE.OLEDB.12.0 не зарегистрирован на локальном компьютере, который не работает в Excel, но работает для Access
  • MS Access 2013 Тип Ошибка преобразования при импорте таблиц Excel
  • Импорт огромных записей из Excel в MsAccess - ошибка в индексе вне диапазона
  • Думая о переходе SQLIte over Access для небольшого офисного приложения Excel
  • Access 2013 VBA автоматизирует потери Excel
  • Как перенести более 65536 строк из Excel в Access (обе версии 2010)
  • SQL для синтаксического анализа многострочных данных?
  • Таблица Excel и таблица MS Access Присоедините визуальную студию C #
  • Экспорт отчета о доступе к Microsoft Outlook в Excel
  • Чтение имен файлов в формате Excel
  • Давайте будем гением компьютера.