Ошибка компиляции DTS GetExecutionErrorInfo в VBA - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь написать функцию устранения неполадок. Я получаю ошибку несоответствия типов данных в Test2 при компиляции перед выполнением. Второй параметр GetExecutionErrorInfo выделяется при ошибке. Это пакеты SQL Server 2000 DTS, а не службы SSIS. Любая помощь будет оценена.

Окружающая среда: - Разработка кода VBA в Microsoft Access 365, на ПК под управлением Windows 7 Enterprise 64 bit, установлена ​​Microsoft SQL Server Management Studio - База данных - SQL Server 2008R2, на сервере

Библиотеки, связанные с тестовым приложением: библиотека объектов Microsoft DTSPackage, библиотека объектов пользовательских задач Microsoft DTS, среда выполнения Microsoft DTS 1.0, библиотека объектов сценариев Microsoft DTSDataPump

Ошибка - Ошибка компиляции: несоответствие типов аргументов ByRef

Sub DTS_via_VBA()
    Dim oPkg As New DTS.Package
    Dim oStep As DTS.Step
    Dim strPackageName, strServer As String

    ' define the connection to the production server
    strServer = "XYZ\SQL01"
    strPackageName = "DTS_Package_Name"

    ' load the package
    oPkg.LoadFromSQLServer strServer, , , DTSSQLStgFlag_UseTrustedConnection, , , , strPackageName

    ' Set Exec on Main Thread
    For Each oStep In oPkg.Steps
        oStep.ExecuteInMainThread = True
    Next

    ' execute the package
    oPkg.Execute

    'test step's success
    Call Test2(oPkg)

    ' cleanup details
    Set oStep = Nothing
    oPkg.UnInitialize
    Set oPkg = Nothing
End Sub

Sub Test2(ByRef oPkg As DTS.Package)
    Dim i As Integer
    Dim l1 As Long
    Dim s1, s2 As String

    For i = 1 To oPkg.Steps.Count
        If oPkg.Steps(i).ExecutionResult = DTSStepExecResult_Failure Then
            oPkg.Steps(i).GetExecutionErrorInfo l1, s1, s2
        End If
    Next i
End Sub
...