MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 15.04.2014, 14:46   #1
Manuella
Neuer Benutzer
Neuer Benutzer
Standard Acc2010 - Laufzeitfehler bei Cancel = True

Hallo!

Ich habe schon wieder eine Frage zwecks meiner Büchereidatenbank auf die ich einfach keine Lösung finde.
Und zwar habe ich bei einem Formular eine zwingende Eingabe bei einem Feld gemacht. Da ich eine eigene Fehlermeldung dazu wollte hab ich das ganze folgendermaßen im VBA geschrieben:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me.Nachname) Then
MsgBox "Bitte geben Sie einen Nachnamen ein!"
Cancel = True
End If
End Sub

Das Cancel = True führt jetzt aber dazu, dass nach der Fehlermeldung von mir noch ein Laufzeitfehler "Sie können nicht zu dem angegebenen Datensatz springen" aufscheint.
Wie kann ich das umgehen/ was habe ich falsch gemacht?
Manuella ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 14:55   #2
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
wie sieht der Code zum Springen aus?
Dort muss der Fehler abgefangen werden. Die oben gezeigte Prozedur ist OK.

PS:
Bitte verwende für Code die Codetags des Forums zur besseren Darstellung.

__________________

Gruß
Klaus
Office2016, Win10
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 15:00   #3
Manuella
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Ich habe außer diesem keinen Code eingegeben, das ist ja gerade das was mich so verwirrt...

Edit: Ich habe am Ende des Formulars einen Button der einen neuen Datensatz anlegen soll. Hab ich zwar nicht im VBA gemacht, aber vielleicht liegt das Problem hierbei?
Ich habe nur eine Schlatfläche eingefügt mit dem Befehl "Neuen Datensatz hinzufügen" im Assistenten.
Manuella ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 15:04   #4
Anne Berg
MOF Guru
MOF Guru
Standard

Hi,

dann wandle das (vermutlich eingebettete) Makro in VBA-Code und eine Ereignisprozedur um und fange den Fehler dort wie vorgeschlagen ab.

__________________

Liebe Grüße
Anne
Anne Berg ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 15:26   #5
Manuella
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Das klingt schon mal sehr gut... und nun kommt die sicherlich blöde Frage aber wie schreibe ich das "Neuen Datensatz hinzufügen" im VBA code und wie fange ich dann den Fehler ab?
Manuella ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 15:44   #6
Anne Berg
MOF Guru
MOF Guru
Standard

Beispiel:
Code:

Private Sub btnNext_Click()
    On Error Goto Fehler
    DoCmd.RunCommand acCmdRecordsGotoNew    ' -> löst Form_BeforeUpdate aus
Ende:
    Exit Sub
Fehler:
    If err.Number = ???? Then   ' <-- Fehlernummer einsetzen
        ' ignorieren
    Else
        MsgBox err.description, , err.number
    End If
    Resume Ende
End Sub

__________________

Liebe Grüße
Anne
Anne Berg ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 15:46   #7
wb_3001
MOF Koryphäe
MOF Koryphäe
Standard

Hallo!

Ohne jetzt genau zu wissen, wie das Form aufgebaut ist, etwa so:

on error resume next
docmd.GoToRecord acDataForm,"DeinFormular",acNewRec

Wolfgang
wb_3001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 15:50   #8
maikek
MOF Guru
MOF Guru
Standard

Von OnError Resume Next würde ich in diesem Zusammenhang abraten.

In die Prozedur des Buttons:
Code:

On Error goto errNew
DoCmd.GoToRecord , , acNewRec
exNew:
Exit Sub
errNew:
Msgbox err.Number & " " & err.Description
resume exNew
Die Fehlernummer, die in der Msgbox erscheint (vermutlich 2105), merken.
Die Fehlerbehandlung dann ändern in:
Code:

errNew:
If err.Number <> Gemerkte Nummer then
   Msgbox err.Number & " " & err.Description
Else
   resume exNew
End if
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 18:57   #9
Manuella
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Funktioniert wunderbar dankeschön!
Manuella ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.04.2014, 19:11   #10
Marsu65
MOF Guru
MOF Guru
Standard

Zitat: von Maike

Von OnError Resume Next würde ich in diesem Zusammenhang abraten.

Nicht nur in diesem Zusammenhang, eher generell.
Mit ganz wenigen Ausnahmen, wo man es ganz bewusst einsetzt.
Marsu65 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 09:09 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 - 2018, Jelsoft Enterprises Ltd.

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