Hallo
Ich habe eine DB, wo das Hauptfenster ausgeblendet ist so, dass immer
nur die einzelnen Formulare sichtbar sind.
In einem Formular möchte ich, per Button einen Bericht auslösen. Das Problem ist jedoch glaube ich,
dass ich zuerst die Formulare ausblenden muss, damit der Bericht angezeigt werden kann.
(Formulare und Bericht als Pop-up definiert).
Ist es nicht möglich beim "betätigen" des Buttons, zudem zwei Formulare auszublenden?
Private Sub ButtonReport_Click()
DoCmd.OpenReport "Report", acViewPreview, , _
IIf(Me.FilterOn, Me.Filter, Null)
If Me.Visible Then
Me.Visible = False
Cancel = True
End If
If Overview.Visible Then
Overview.Visible = False
Cancel = True
End If
End Sub
Hallo,
ich frage mich warum diese Ausblenderei und warum den Bericht als Pop-Up?
Lass doch einfach alles weg. Der Bericht erscheint dann als Seitenansicht und gut ist.
Gruß
Johann
Hallo Jonny
Da ich das Hauptaccessfenster ausgeblendet habe muss ich eben mit Pop-Up's und dem Ausblenden arbeiten:
http://support.microsoft.com/kb/510049/de
ZitatBei allen Formularen der Datenbank muss die Eigenschaft PopUp auf 'Ja' eingestellt sein, weil sie sonst im nicht mehr sichtbaren Access-Fenster dargestellt werden und daher selber nicht mehr sichtbar sind.
Beim Öffnen von Berichten in Seitenansicht muss man alle geöffneten (PopUp-)Formulare auf unsichtbar setzen oder schließen, weil sie sonst das Berichtsfenster verdecken.
Hallo,
welche Acc-Version hast du?
Gruß
Johann
oh ja sorry vergessen zu erwähnen. Ich nutze Access 2007
Hallo,
ich auch.
Ich blende die Fenster nicht aus.
Warum sollte man?
Wenn ich ein Pop-Up habe dann nur weil die Info wichtig ist und im Vordergrund stehen soll.
Das Form wird dann wieder geschlossen.
Bericht habe ich grundsätzlich nicht als Pop-Up.
Das Hauptfenster, da wo man die Objekte auswählen kann, ist bei mir sichtbar.
Erst wenn die Entwicklung fertig ist wird es nicht mehr angezeigt. Access Optionen, Navigationsbereich anzeigen.
Gruß
Johann
Hallo Petermeier
Wenn du ein Fromular ausblenden möchtest must du es auch ansprechen:
Forms!DeinNamedesFormularwasdu ausblendenmöchtest.Visible = False > einblenden
Forms!DeinNamedesFormularwasdu ausblendenmöchtest.Visible = true> ausblenden
Gruß Stefan
Hallo Petermeier
War zu schnell mit meinem Beitrag, dein Bericht öffnet sich in der Seitenansicht aus der du auch drucken kannst. Wenn du nun dein Bericht gedruckt hast must du wenn dein Formular ausgeblendet ist wieder dafür sorgen das es eingeblendet wird.
Und dem kann ich @Jonny nur beipflichten warum ausblenden??
Gruß Stefan
Hallo Stefan,
kleiner Dreher bei dir.
visible = false < ausblenden
visible = true < einblenden.
Gruß
Johann
hmm also ich hab nun eine Info gefunden und so müsste es klappen (hat es jedenfalls beim Ersteller)
Private Sub ButtonReport_Click()
On Error GoTo Err_Bericht_Button_Click
Dim stDocName As String
stDocName = "Report"
DoCmd.OpenReport stDocName, acPreview
vHwnd = Forms("Query").hwnd
vHwnd = Reports(stDocName).hwnd
Call ShowWindow(vHwnd, SW_SHOW)
Exit_Bericht_Button_Click:
Exit Sub
Err_Bericht_Button_Click:
MsgBox Err.Description
Resume Exit_Bericht_Button_Click
End Sub
Leider blicke ich noch nicht ganz durch und es funktioniert noch nicht.
Fehler: Sub oder Funktion nicht definiert
Hallo,
zu dem ganzen Ausblenden und benutzen von PopUp-Formularen kann ich nur sagen:
http://www.donkarl.com?FAQ1.11 (http://www.donkarl.com?FAQ1.11)
Und dazu die kritischen Anmerkungen von Karl (auch bezüglich Bericht!) lesen!
In meinen Anwendungen sieht kein User das Access-Hauptfenster; die Steuerung der Anwendung geht über Buttons u. über eigene Menüleisten u. das Ganze ohne API
Solche Krampflösungen wie alle Formulare in PopUp-Form halte ich nicht für gelungen. Was solls?
Gruß Oma
Hallo Oma
Danke für die Bemerkung. Habe die Page von Karl auch schon gesehen...
Für mich schien das die optimal Lösung zu sein, das Access-Hauptfenster auszublenden und nur Formulare zu sehen...
Ich habe es mittlerweile geschafft, dass der Bericht auch angezeigt wird.
Problem war, dass Verweise auf einen Code in einem anderen Formular (Hauptformular) verwiesen haben.
Ich habe also in meinem Formular, wo der Bericht aufgerufen wird nochmals den Code wie im Hauptformular hinterlegt:
Option Compare Database
Option Explicit
'API-Aufruf und Konstanten zum Ausblenden und Einblenden eines Fensters
Const SW_HIDE = 0 ' Fenster ausblenden
Const SW_NORMAL = 1 ' Fenster wiederherstellen bzw. einblenden
Const SW_SHOW = 5 ' Activates the window and displays it in its current size and position.
Private Declare Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Dim vHwnd
Private Sub Form_Close()
DoCmd.Quit
End Sub
Private Sub Form_Open(Cancel As Integer)
Dim hWindow As Long
Dim nResult As Long
Dim nCmdShow As Long
hWindow = Application.hWndAccessApp
nCmdShow = SW_HIDE
nResult = ShowWindow(ByVal hWindow, ByVal nCmdShow)
Call ShowWindow(Me.hwnd, SW_NORMAL)
End Sub
und mittels diesem Code wird der Bericht nun angezeigt und sogar noch gefilert, wenn ein Filter gesetzt ist:
Private Sub ButtonReport_Click()
Dim stDocName As String
stDocName = "Report"
DoCmd.OpenReport stDocName, acPreview, , _
IIf(Me.FilterOn, Me.Filter, Null)
vHwnd = Forms("Query").hwnd
vHwnd = Reports(stDocName).hwnd
Call ShowWindow(vHwnd, SW_SHOW)
End Sub
Hallo Jonny
ZitatHallo Stefan,
kleiner Dreher bei dir.
visible = false < ausblenden
visible = true < einblenden.
Gruß
Johann
Danke für deine Verbesserung, kommt davon wenn man ohne Brille schreibt ;D ;D
Stefan :D :D