Запустить отчет о доступе в автоматическом режиме? - PullRequest
0 голосов
/ 09 июля 2020
• 1000 услуга «Обнаружение интерактивных служб», похоже, не помогает. (К вашему сведению: весь этот код отлично работает с вызывающим приложением, НЕ запущенным как служба)

В отчете My Access есть несколько таблиц данных (которые я вставляю в отчет - проблем нет) и следующие code:

Function RunTurnReport()
   ReportPrint "Turn Report"
   Application.Quit
End Function

Public Sub ReportPrint(rpt as string)
   dim outfile as string
   outfile = "C:\reports\" & rpt & ".rtf"
   Application.DoCmd.OpenReport rpt, acViewNormal,,,acWindowNormal
   Application.DoCmd.OutputTo acOutputReport, rpt, acFormatRTF, outfile
End Sub

То есть с точки зрения доступа. Сам отчет просто получает данные из простого запроса к таблице, упомянутой выше.

Внутри моего «вызывающего приложения» он использует встроенный VBA. Я пробовал 2 метода для этого:

Метод 1: Оболочка для запуска макроса, который запускает функцию RunTurnReport

Const ReportLocation = """C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE"" ""C:\Reports\Reporting.mdb"" /X macroRunTurnReport"

Private Sub RunTurnupReport_OnTrue()
   Dim id As Variant
   id = Shell(ReportLocation, vbMinimizedNoFocus)
End Sub

Метод 2: Автоматизация доступа

Dim MSA As New Access.Application

Private Sub RunTurnupReport_OnTrue()
   MSA.OpenCurrentDatabase "C:\Reports\Reporting.mdb"
   MSA.Run "RunTurnReport"
  
   set MSA=nothing
End Sub    

Кажется, что у обоих методов есть проблема, когда встроенное приложение VBA работает как служба из-за того, что Access выдает всплывающие сообщения, а затем видит «Программа, запущенная на этом компьютере, пытается отобразить сообщение»

Я просто могу ' t выяснить, как запустить эти отчеты (с вызовом приложения как службы) без этой проблемы: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...