Я пытаюсь написать функцию устранения неполадок. Я получаю ошибку несоответствия типов данных в 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