Как подключить / связать SQL db для доступа к базе данных с помощью SSIS?

#sql-server #ms-access #ssis #database-connection

#sql-server #ms-access #ssis #база данных-подключение

Вопрос:

У меня есть база данных SQL, которая централизует все данные в нашем агентстве; однако мы также получаем данные из внешних источников, которые необходимо проанализировать в нашей структуре БД. Один из наших партнеров поддерживает базу данных Access 2016, которую они предоставляют нам еженедельно для выполнения различных анализов. Моя цель — создать пакет SSIS (2017), который будет перемещать данные из базы данных Access в таблицы SQL; замена базы данных Access на обновленную версию и повторный запуск пакета SSIS по расписанию.

Я пытаюсь настроить диспетчер подключений для базы данных Access, но не могу найти параметр драйвера в предоставленном списке DSN для файлов .accdb, только для файлов .mdb типов, когда я пытаюсь создать строку подключения. Как мне создать соединение для базы данных Access 2016 (т. Е. .accdb)???

Комментарии:

1. Драйверы Jet 4.0 понимают только файлы .mdb. Вы загрузили и установили новые распространяемые компоненты Microsoft Access Database Engine для 2010 или 2016 года?

2. Да, я заставил его работать после установки нового компонента Access Database Engine. Спасибо!

Ответ №1:

Вам не нужен SSIS для чего-то подобного. Вы можете просто экспортировать данные из MS Access на SQL Server, не отвечая на другое приложение.

Этот пример VBA будет экспортировать данные из таблицы в Access на SQL Server.

 Option Compare Database

Private Sub Command0_Click()

Dim sTblNm As String
Dim sTypExprt As String
Dim sCnxnStr As String, vStTime As Variant
Dim db As Database, tbldef As DAO.TableDef

On Error GoTo ExportTbls_Error

sTypExprt = "ODBC Database" 'Export Type
sCnxnStr = "ODBC;DRIVER=SQL Server;SERVER=your_sever_name" amp; stServer amp; ";DATABASE=your_database_name" amp; stDatabase amp; ";Trusted_Connection=Yes"

vStTime = Timer
Application.Echo False, "Visual Basic code is executing."

Set db = CurrentDb()

'need a reference to Microsoft DAO 3.x library
For Each tbldef In db.TableDefs
'Don’t export System and temporary tables
    Debug.Print tbldef.Name
    If tbldef.Name Like "*Table1*" Then
        sTblNm = tbldef.Name
        DoCmd.TransferDatabase acExport, sTypExprt, sCnxnStr, acTable, sTblNm, sTblNm
    End If
Next tbldef

MsgBox "Done! Time taken=" amp; (Timer - vStTime)

On Error GoTo 0
SmoothExit_ExportTbls:
Set db = Nothing
Application.Echo True
Exit Sub

ExportTbls_Error:
MsgBox "Error " amp; Err.Number amp; " (" amp; Err.Description amp; ") in procedure ExportTblsODST"
Resume SmoothExit_ExportTbls

End Sub
 

Смотрите ссылку ниже для получения дополнительной информации.

https://www.mssqltips.com/sqlservertip/2484/import-data-from-microsoft-access-to-sql-server/