collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 55
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 1
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13910
  • stats Beiträge insgesamt: 65777
  • stats Themen insgesamt: 8873
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Schließen ohne Fehlermeldung  (Gelesen 496 mal)

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 261
Schließen ohne Fehlermeldung
« am: Oktober 24, 2017, 20:55:36 »
Ich versuche mühsam, alle Makros durch VBA zu ersetzen ...

Wie lautet der Befehl für Formular schließen ohne zu speichern und ohne jegliche Fehlermeldungen zu bringen, z.B. weil ein Feld nicht ausgeführt wurde ...

 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 261
Re: Schließen ohne Fehlermeldung
« Antwort #1 am: Oktober 24, 2017, 21:16:20 »
Ich habs selber hingekriegt mit

Private Sub cmdSchließen_Click()
 On Error GoTo Err_cmdSchließen_Click
 DoCmd.Close acForm, "frmNEU", acSaveNo
 Exit_cmdSchließen_Click:
 Exit Sub

 Err_cmdSchließen_Click:
 MsgBox Err.Description
 Resume Exit_cmdSchließen_Click
 End Sub
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23265
Re: Schließen ohne Fehlermeldung
« Antwort #2 am: Oktober 25, 2017, 08:09:48 »
Hallo,

da gibt es ein Missverständnis, denke ich....

Der Parameter "acSaveNo" sorgt nur dafür, dass Änderungen am Form selber nicht gespeichert werden.

Mit Datenspeicherung hat dieser Parameter nichts zu tun.


Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1168
Re: Schließen ohne Fehlermeldung
« Antwort #3 am: Oktober 25, 2017, 09:41:14 »
Wenn ein (auch neuer) Datensätz Änderungen erfahren hat, die noch nicht gespeichert wurden, ist der Wert der Formular-Eigenschaft Dirty = True (Wahr). Man kann in diesem Zustand entweder mit der Formular-Methode Undo Änderungen am Datensatz rückgängig machen (entspricht einem Drücken der Esc-Taste) oder versuchen, die Änderungen zu speichern, indem Dirty = False (Falsch) gesetzt wird. Bei Undo wird das gleichnamige Formular-Ereignis ausgelöst und beim Speicherversuch tritt vorher noch das Formular-Ereignis BeforeUpdate ein. Beide Ereignisse haben ein Cancel-Argument, welches, wenn es auf einen Wert <> 0 gesetzt wird, dafür sorgt, dass die nachfolgende Aktion nicht ausgefört wird.

Das Speichern kann dann von Erfolg oder Mißerfolg gekrönt sein. Bei Erfolg wird das Formular-Ereignis AfterUpdate ausgelöst; bei Mißerfolg wird ein Fehler mit einer Fehlernummer erzeugt, der in der Fehlerbehandlung gezielt bearbeitet oder ganz grob (aber weniger informativ) übergangen werden kann.

Beim Schließen des Formulars wird wie beim Navigieren in Datensätzen auch bei veränderten Daten zuerst BeforeUpdate und anschließend AfterUpdate als Ereignis ausgelöst und jedesmal, wenn etwas nicht koscher ist, ein Fehler ausgelöst. Erst danach geht es mit den Ereignissen Unload und Close beim Schließen, bzw. Current beim Navigieren weiter, wobei Unload wieder durch ein Cancel-Argument abgebrochen werden kann.

Ob nun die Schließ-Anweisung über DoCmd.Close ... oder über das Betätigen der Schließschaltfläche oben rechts am Fensterrand oder über eine Registerkarte ausgelöst wird, spielt dabei keine Rolle.
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: Carl

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 261
Re: Schließen ohne Fehlermeldung
« Antwort #4 am: Oktober 25, 2017, 13:48:41 »
Wie lautet Eurer Meinung nach der richtige Code? Also es soll auf jeden Fall ohne Fehlermeldung geschlossen werden und so wenig wie möglich gespeichert werden, weder am Formular noch im DS.

Carl
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23265
Re: Schließen ohne Fehlermeldung
« Antwort #5 am: Oktober 25, 2017, 19:22:50 »
Hallo,

??

verstehe nur Bahnhof.

Zitat
es soll auf jeden Fall ohne Fehlermeldung geschlossen werden und so wenig wie möglich gespeichert werden

Kannst Du das mal erklären?

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1168
Re: Schließen ohne Fehlermeldung
« Antwort #6 am: Oktober 25, 2017, 20:14:31 »
Ich verstehe nicht, was an der Umsetzung jetzt so schwierig ist. :'(

   On Error Resume Next   'alle Fehler ohne Meldung übergehen
   If Me.Dirty Then Me.Undo
   DoCmd.Close acForm, Me.Name, acSaveNo
Grüße von der (⌒▽⌒)