DoCmd.OpenReport funktioniert mit ACC 03 Runtime nicht

08/12/2008 - 23:07 von Joerg M. | Report spam
Hi NG,

ich rufe über verschiedene Wege (z.B. aus einem Formular per Button) eine
Funktion aus einer anderen Office-Anwendung (Outlook) via VBA auf. Ziel ist,
dass ein Bericht einer Access-MDB aufgerufen wird.

Den Quellcode habe ich unten eingefügt.

Der Code funktioniert (in einem Modul in Outlook 2003, augerufen über ein
Formular in Outlook 2003), wenn auf dem PC Access 2003 (Vollversion) oder
Access 2007 (Runtime) installiert ist.

Leider funktioniert der Code nicht mit Access 2003 (Runtime).
Eine Fehlermeldung kommt nicht, Access startet aber es wird kein Report
angezeigt.

Kann jemand helfen?

Danke, Gruß Joerg



Function fktOpenReport(strRptName As String, _
Optional ByVal strDisplay As String, _
Optional ByVal strFilter As String, _
Optional ByVal strWhere As String, _
Optional ByVal strWindow As Variant _
) As Boolean

1 Dim appPath As String
2 Dim dbPath As String
3 Dim strPath As String
4 Dim X As Long
5 Dim objAccess As Object

6 appPath = "C:\Programme\Microsoft Office\OFFICE11\Msaccess.exe"
7 dbPath = GetSetting("Outlook", "FormelleMail", "Pfad_Datenbank", "")

8 strPath = """" & appPath & """ " & """" & dbPath & """"

9 X = Shell(strPath, vbMaximizedFocus)

10 Set objAccess = GetObject(dbPath)

11 If IsMissing(strDisplay) Then intDisplay = acNormal
12 If IsMissing(strFilter) Then strFilter = ""
13 If IsMissing(strWhere) Then strWhere = ""
14 If IsMissing(strWindow) Then strWindow = ""
15 If IsMissing(strOpenArgs) Then strOpenArgs = ""

16 objAccess.DoCmd.OpenReport strRptName, strDisplay, strFilter, strWhere,
strWindow

17 OLEOpenReport = True

End Function


Function test()

1 Call fktOpenReport("replogerror", acViewPreview, , , acWindowNormal)

End Function
 

Lesen sie die antworten

#1 André Minhorst
09/12/2008 - 14:52 | Warnen spam
Hi Jörg,

Am Mon, 8 Dec 2008 14:07:01 -0800 schrieb Joerg M.:

ich rufe über verschiedene Wege (z.B. aus einem Formular per Button) eine
Funktion aus einer anderen Office-Anwendung (Outlook) via VBA auf. Ziel ist,
dass ein Bericht einer Access-MDB aufgerufen wird.

Den Quellcode habe ich unten eingefügt.

Der Code funktioniert (in einem Modul in Outlook 2003, augerufen über ein
Formular in Outlook 2003), wenn auf dem PC Access 2003 (Vollversion) oder
Access 2007 (Runtime) installiert ist.

Leider funktioniert der Code nicht mit Access 2003 (Runtime).
Eine Fehlermeldung kommt nicht, Access startet aber es wird kein Report
angezeigt.

Kann jemand helfen?

Danke, Gruß Joerg



Function fktOpenReport(strRptName As String, _
Optional ByVal strDisplay As String, _
Optional ByVal strFilter As String, _
Optional ByVal strWhere As String, _
Optional ByVal strWindow As Variant _
) As Boolean

1 Dim appPath As String
2 Dim dbPath As String
3 Dim strPath As String
4 Dim X As Long
5 Dim objAccess As Object

6 appPath = "C:\Programme\Microsoft Office\OFFICE11\Msaccess.exe"
7 dbPath = GetSetting("Outlook", "FormelleMail", "Pfad_Datenbank", "")

8 strPath = """" & appPath & """ " & """" & dbPath & """"

9 X = Shell(strPath, vbMaximizedFocus)

10 Set objAccess = GetObject(dbPath)

11 If IsMissing(strDisplay) Then intDisplay = acNormal
12 If IsMissing(strFilter) Then strFilter = ""
13 If IsMissing(strWhere) Then strWhere = ""
14 If IsMissing(strWindow) Then strWindow = ""
15 If IsMissing(strOpenArgs) Then strOpenArgs = ""

16 objAccess.DoCmd.OpenReport strRptName, strDisplay, strFilter, strWhere,
strWindow

17 OLEOpenReport = True

End Function


Function test()

1 Call fktOpenReport("replogerror", acViewPreview, , , acWindowNormal)

End Function



hat das vielleicht was damit zu tun, dass sich die Access Runtime nicht so
leicht automatisierten làsst?

Vielleicht findest Du hier einen Ansatz:
http://groups.google.com/group/micr...3b8104e217

Davon ab: Optional-Parameter müssen den Datentyp Variant aufweisen, sonst
liefert IsMissing falsche Ergebnisse.

Ciao
André


http://www.access-entwicklerbuch.de
http://www.access-im-unternehmen.de

Ähnliche fragen