Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Ereignis Click() zwei Formulare ausblenden

Begonnen von petermeier, Februar 22, 2012, 12:05:29

⏪ vorheriges - nächstes ⏩

petermeier

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

Jonny

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

petermeier

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.

Jonny

Hallo,
welche Acc-Version hast du?

Gruß

Johann

petermeier

oh ja sorry vergessen zu erwähnen. Ich nutze Access 2007

Jonny

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

Stapi

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
Grüße aus dem schönen NRW
Stefan

Stapi

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
Grüße aus dem schönen NRW
Stefan

Jonny

Hallo Stefan,

kleiner Dreher bei dir.
visible = false < ausblenden
visible = true < einblenden.

Gruß

Johann

petermeier

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

oma

Hallo,

zu dem ganzen Ausblenden und benutzen von PopUp-Formularen kann ich nur  sagen:

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
nichts ist fertig!

petermeier

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

Stapi

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
Grüße aus dem schönen NRW
Stefan