MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Archive > Microsoft Access - Archiv > Microsoft Access - Archiv (2002)
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 28.06.2002, 09:43   #1
Maverick
MOF User
MOF User
Standard bericht schliessen verhindern

Hallo Ihr Lieben,

habe folgendes Problem:
Ich möchte beim schliessen eines Berichts abfragen, wie weiter verfahren werden soll. Wenn der User auf "abbrechen" klickt soll der Bericht nicht geschlossen werden. Dies funkt leider nicht, da auch bei Exit Sub der Bericht schon geschlossen ist.

Hier der Code:
Code:

Private Sub Report_Close()
On Error GoTo Err_Report_Close

Dim Ergebnis

Ergebnis = MsgBox("Wollen Sie den Auftrag speichern?", vbYesNoCancel, "Auftrag speichern")
If Ergebnis = vbYes Then
    MsgBox "Speichern gewählt"
    ElseIf Ergebnis = vbNo Then
    MsgBox " nicht speichern gewählt"
    ElseIf Ergebnis = vbCancel Then
    MsgBox "abbrechen"
    GoTo Exit_Report_Close
End If

DoCmd.OpenForm "Haupt", acNormal
DoCmd.OpenForm "frm_Auftragerteilen", acNormal

Exit_Report_Close:
    Exit Sub

Err_Report_Close:
    MsgBox Err.Description
    Resume Exit_Report_Close
   
End Sub
Das muss doch aber gehen??
Vielen Dank schon mal für die Hilfe

__________________

Vielen Dank für eure Bemühungen im voraus

Klaus
Maverick ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.06.2002, 11:14   #2
A.S.
Standard

Du mußt ein

DoCmd.CancelEvent

einfügen, wenn das angewählte Ereignis nicht durchgeführt werden soll.

HTH

Arno
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.06.2002, 11:37   #3
Maverick
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Arno,

Ich hab ein
DoCmd.CancelEvent

statt des goto..... nach der MsgBox abbrechen eingefügt, der Bericht wird aber trotzdem geschlossen.

Funkt leider nicht, hast Du vielleicht noch einen Lösungsvorschlag?

__________________

Vielen Dank für eure Bemühungen im voraus

Klaus
Maverick ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.06.2002, 11:41   #4
A.S.
Standard

Hallo Klaus,

hast Du das

Exit Sub

welches Ursprünglich ausgelöst wurde, hinter das

DoCmd.CancelEvent

übernommen? Ansonsten läuft er ja mit dem Rest des Codings weiter, öffnet Deine Formulare und es sieht zumindest so aus, als würde der Report beendet.

Gruß

Arno
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.06.2002, 11:52   #5
Maverick
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Arno,

ich hab jetzt das Exit Sub
hinter dem Cancel Event.
Hier nochmal der aktuelle Code:

Code:

Private Sub Report_Close()
On Error GoTo Err_Report_Close

Dim Ergebnis

Ergebnis = MsgBox("Wollen Sie den Auftrag speichern?", vbYesNoCancel, "Auftrag speichern")
If Ergebnis = vbYes Then
    MsgBox "Speichern gewählt"
    
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "aktualisieren_Kennzeichen"
    DoCmd.OpenQuery "anfüg_Auftrag_tmp_an_Auftrag"
    DoCmd.OpenQuery "anfüg_Auftrag_Details_tmp_an_Auftrag_Details"
    DoCmd.OpenQuery "löschen_Auftrag_Details_tmp"
    DoCmd.OpenQuery "löschen_Auftrag_tmp"
    DoCmd.SetWarnings True
    
    ElseIf Ergebnis = vbNo Then
    MsgBox " nicht speichern gewählt"
    
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "löschen_Auftrag_Details_tmp"
    DoCmd.OpenQuery "löschen_Auftrag_tmp"
    DoCmd.SetWarnings True
    
    ElseIf Ergebnis = vbCancel Then
    MsgBox "abbrechen"
    GoTo Exit_Report_Close
    
End If
DoCmd.Close acForm, "frm_Auftragerteilen"
DoCmd.OpenForm "Haupt", acNormal
DoCmd.OpenForm "frm_Auftragerteilen", acNormal

Exit_Report_Close:
    DoCmd.CancelEvent
    Exit Sub

Err_Report_Close:
    MsgBox Err.Description
    Resume Exit_Report_Close
   
End Sub
Ich hab auch die Variante, die
DoCmd.CancelEvent
Exit Sub

direkt hinter die MsgBox abbrechen zu stellen versucht.
Beides funkt leider nicht.
Sorry

Hast Du noch eine Idee???

__________________

Vielen Dank für eure Bemühungen im voraus

Klaus
Maverick ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.06.2002, 13:22   #6
KHS
MOF Meister
MOF Meister
Standard

Das Ereignis 'Report_Close' hat halt keine Cancel-'Option'.
Beim Formular ginge es über das Unload-Ereignis - und das gibt's leider beim Report nicht.

Mehr fällt mir dazu leider auch nicht ein.

__________________

Gruss aus dem (wilden) Süden ;-) Karl-Heinz

PS: Wenn das Thema abgeschlossen ist, bitte den Thread mit einem Feedback als erledigt kennzeichnen, bzw. mit dieser neuen Funktion (anklicken) als erledigt setzen!
KHS ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 01.07.2002, 12:40   #7
A.S.
Standard

Sorry,

da ich mich derzeit wieder auf einer Schulung befinde, kann ich mich mit diesem Problem nicht weiter beschäftigen - wie mit allen anderen Themen, in welche ich mich eingeklinkt hatte, auch.

Es währe gut, wenn sich hier jemand anderer einklinken könnte.

Gruß,

Arno
 
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 02.01.2003, 17:49   #8
Sascha Trowitzsch
MS-Office-Forum Team MS-Office-Forum Team
Standard

Na gut. Altes wieder aufgefrischt.

Das Schließen eines Berichts kann nicht mit Access-Bordmitteln abgefangen werden, ohne dass er auch wirklich schließt. Es gibt nicht sowas wie CloseRequest.
Die einzige Möglichkeit, die ich sehe, ist ein Subclassing des Berichts.
Dieses wiederum funktioniert absolut nicht zuverlässig in VBA. (Schon bei Forms gibt es Schwierigkeiten). Aus diesem Grund ist eine externe ActiveX-DLL zu verwenden.

Ich hab eine MouseWheel-DLL von Lebans erweitert. Hier zu holen: http://www.moss-soft.de/public/mousewheel.dll .

Sie enthält zusätzliche Events und Methoden.

In einem Bericht lässt sie sich z.B. so einsetzen:
Code:

'Beispiel für Subclassing eines Berichts
 
'In die Verweise die DLL mousewheel.dll laden
Private WithEvents SubCLS As MouseWheel.cMouseWheel
 
'Normales Schließen
Private Sub Report_Close()
    SubCLS.SubClassUnHookForm
    Set SubCLS = Nothing
End Sub
 
Private Sub Report_Open(Cancel As Integer)
    Set SubCLS = New MouseWheel.cMouseWheel
    Set SubCLS.Form = Me
    SubCLS.CancelClose True 'Schließen nicht erlauben
    SubCLS.SubClassHookForm
End Sub
 
Private Sub SubCLS_CloseRequest(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
    If MsgBox("Darf der Bericht jetzt geschlossen werden?", vbYesNo) = vbYes Then
        'Hier nach Belieben weiteren Code ausführen
        '...
        SubCLS.CancelClose (False)  'Schließen wieder erlauben
    End If
End Sub
Das Schließen des Berichts wird abgefangen und in das Event CloseRequest ungesetzt, wenn CancelClose auf True gesetzt wird. In dieser Prozedur kann dann diverser Code abgearbeitet werden. Anschließend wird CancelClose auf False gesetzt und der Bericht kann normal geschlossen werden.

Ciao, Sascha
Sascha Trowitzsch ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.