Rubrik: Datenbanken · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 05.12.02 |
![]() Warum umständlich selbst einen Datenbank-Bericht erstellen und drucken, wenn's auch einfach geht :-) | ||
Autor: ![]() | Bewertung: ![]() ![]() ![]() ![]() ![]() | Views: 43.823 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 | ![]() |
In fast jeder Datenbank-Anwendung ist es sinnvoll dem Anwender geeignete Berichtfunktionen zur Verfügung zu stellen, so dass man das Ergebnis einer Datenbank-Abfrage nicht nur am Bildschirm sieht, sondern auch schwarz auf weiß auf Papier ausdrucken kann (oder natürlich auch farbig).
Mit Crystal Reports, das im Installationsumfang von VB6 Prof. oder höher enthalten ist, lässt sich eine solche Funktion ja auch in die eigene VB-Anwendung implementieren.
Man könnte jedoch auch auf die Idee kommen und Microsoft Access bauftragen, zumal Access von Haus aus mit vielfältigen Berichtfunktionen ausgestattet ist.
Voraussetzung ist dann natürlich, dass der Anwender auch MS-Access installiert hat.
Und so geht's
' Objekt-Verweis auf Access Private oAccess As Object
' Access-Reportfunktion aus VB heraus aufrufen Public Function AccessReport_Start( _ ByVal sDBFile As String, _ ByVal sReportName As String, _ Optional ByVal bPreview As Boolean = True) As Boolean ' Fehlerbehandlung einschalten ' (z.B. falls Access nicht installiert) On Error Goto ErrHandler ' Access-Objekt erstsllen Set oAccess = CreateObject("Access.Application") With oAccess ' Datenbank öffen .OpenCurrentDatabase filepath:=sDBFile ' Report drucken (bzw. Vorschau erstellen) If bPreview Then .Visible = True .DoCmd.OpenReport sReportName, 2 Else .DoCmd.OpenReport sReportName End If End With AccessReport_Start = True Exit Function ErrHandler: ' Fehler! MsgBox "Fehler: " & CStr(Err.Number) & vbCrLf & _ Err.Descritpion AccessReport_Start = False End Function
' Access schließen und ' Objekt-Verweis zerstören Public Sub AccessReport_Close() On Error Resume Next oAccess.Quit Set oAccess = Nothing On Error Goto 0 End Sub
Aufruf:
' Report starten AccessReport_Start App.Path & "\MyDB.mdb", "Daten-Liste"
' Und nach getaner Arbeit...
AccessReport_Close