title image


Smiley Re: Access Bericht drucken aus VB6
Anleitung:



Erstelle ein neues Visual Basic Projekt

Füge zu Form1 zwei Befehlsschaltflächen als Array hinzu: Command1(0) und Command1(1)

Kopiere folgenden Code über die Zwischenablage in das Formular:

Option ExplicitDim mobjAccess As Access.Application Private Sub Command1_Click(Index As Integer)    ' Da der Anwender das Access-Fenster zwischenzeitlich geschlosen haben könnte,    ' bei jedem Click neu initialisieren:    InitializeAccess     Select Case Index    Case 0 ' Vorschau        mobjAccess.DoCmd.OpenReport "MeinBericht", acViewPreview        ShowAccess mobjAccess    Case 1 ' Drucken        mobjAccess.DoCmd.OpenReport "MeinBericht", acViewNormal    End Select     If mobjAccess.UserControl = False Then        mobjAccess.Visible = True    End IfEnd Sub'-------------------------------------------------- Private Sub Form_Load()    Command1(0).Caption = "Vorschau..."    Command1(1).Caption = "Drucken"End Sub'-------------------------------------------------- Private Sub Form_Unload(Cancel As Integer)    TerminateAccessEnd Sub'-------------------------------------------------- Private Sub InitializeAccess()    Dim sDatabaseName As String     If mobjAccess Is Nothing Then Set mobjAccess = CreateObject("Access.Application")    'If mobjAccess Is Nothing Then Set mobjAccess = GetObject(, "Access.Application")    'If mobjAccess Is Nothing Then Set mobjAccess = New Access.Application     sDatabaseName = App.Path & "\MeineDatenbank.mdb" On Error Resume Next    Dim sTest As String, fOpenDatabaseRequired As Boolean    sTest = mobjAccess.CurrentDb.Name    If Err Then        fOpenDatabaseRequired = True    End If On Error GoTo 0    If fOpenDatabaseRequired Then        mobjAccess.OpenCurrentDatabase sDatabaseName, False    ElseIf LCase(mobjAccess.CurrentDb.Name) <> LCase(sDatabaseName) Then        mobjAccess.OpenCurrentDatabase sDatabaseName, False    End IfEnd Sub'-------------------------------------------------- Private Sub TerminateAccess()On Error Resume Next    mobjAccess.CloseCurrentDatabase    mobjAccess.Quit    Set mobjAccess = NothingEnd Sub'-------------------------------------------------- 

Füge ein neues Standarmodul zum Projekt hinzu.

Kopiere folgenden Code in Dein Standardmodul:

Option Explicit Private Declare Function SetForegroundWindow Lib "User32" _  (ByVal hWnd As Long) As LongPrivate Declare Function IsIconic Lib "User32" _  (ByVal hWnd As Long) As LongPrivate Declare Function ShowWindow Lib "User32" _  (ByVal hWnd As Long, ByVal nCmdShow As Long) As LongPrivate Const SW_NORMAL = 1     'Show window in normal sizePrivate Const SW_MINIMIZE = 2   'Show window minimizedPrivate Const SW_MAXIMIZE = 3   'Show window maximizedPrivate Const SW_SHOW = 9       'Show window without changing window size '----------------------------------------------------------------------'This procedure brings the instance of Microsoft Access referred to'as "instance" into view. The instance's window size can be SW_NORMAL,'SW_MINIMIZE, SW_MAXIMIZE, or SW_SHOW. If size is omitted, the window is'not changed (SW_SHOW). To call this function, use this syntax:'ShowAccess instance:=objAccess, size:=SW_SHOW'----------------------------------------------------------------------Sub ShowAccess(instance As Object, Optional size As Variant)    Dim hWnd As Long, hResult As Long     If IsMissing(size) Then size = SW_SHOW On Error Resume Next    If Not instance.UserControl Then instance.Visible = TrueOn Error GoTo 0 'turn off error handler     hWnd = instance.hWndAccessApp    hResult = SetForegroundWindow(hWnd)    If size = SW_SHOW Then 'keep current window size         If IsIconic(hWnd) Then hResult = ShowWindow(hWnd, SW_SHOW)    Else         If IsIconic(hWnd) And size = SW_MAXIMIZE Then _           hResult = ShowWindow(hWnd, SW_NORMAL)         hResult = ShowWindow(hWnd, size)    End IfEnd Sub'-------------------------------------------------- 

Ausprobieren!

Weitere Infos in der Microsoft Knowldedge base unter Q147816: ACC: Using Microsoft Access as an Automation Server



Viel Erfolg!

Thomas Prötzsch

cu
Thomas Prötzsch

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: