Neuigkeiten:

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

Mobiles Hauptmenü

Fehlermeldung wenn keine Daten im Ufo

Begonnen von SG05, März 10, 2012, 19:40:26

⏪ vorheriges - nächstes ⏩

SG05

Hallo zusammen,

habe folgendes Problem:

In einem Ufo werden Daten angezeigt und über die Eigenschaft "Beim Klicken" ein weiters Formular auf Basis des aktuell ausgewählent Datensatzes ( über Datensatzmarkierer ) angezeigt

Private Sub Form_Click()
usw......

Nun kommt es vor, dass keine Daten angezeigt werden. Wenn der User nun in das "leere" Ufo klickt folgt:

Laufzeitfehler 2113 "Sie haben einen Wert eingegeben, der......"

Wie kann ich diese Fehlermeldung verhindern, da der User über "Debuggen" in den Code kommt?

Danke für die Hilfe

Stapi

´Hallo SGO5

Schau mal in die Access Hilfe NZ() Funktion
Grüße aus dem schönen NRW
Stefan

Beaker s.a.

hallo sg05,
ZitatWie kann ich diese Fehlermeldung verhindern, da der User über "Debuggen" in den Code kommt?
Wie wär's denn mit einer Fehlerbehandlung?
Prinzip:
Private Sub Form_Click()
On Error Goto Fehler
.
ganz viel von Deinem tollen Code
.
Ende:
Exit Sub
Fehler:
If Err.Number = 2113 Then
   Mach was
   Resume (je nach dem, was vorher passiert)
End if
End Sub

hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

bahasu

Moin,

statt einer Fehlerbehandlung kannst Du auch den "falschen" Formularaufruf vermeiden, indem Du den Formularaufruf nur zulässt, wenn es kein neuer Datensatz ist:

If Not Me.NewRecord Then DoCmd.OpenForm "Formular2"

Siehe Beispiel im Anhang.

Harald

[Anhang gelöscht durch Administrator]
Servus

Beaker s.a.

Hallo Harald,
Zitatstatt einer Fehlerbehandlung
Also "statt" ist IMO kein guter Ansatz; ich plädiere für "zusätzlich".
Natürlich ist es gut Fehler schon im Vorfeld zu vermeiden, aber
auf eine Fehlerbehandlung sollte man auf keinen Fall verzichten.
1. kann ja auch noch ein anderer Fehler auftreten
2. ist die in einer Runtime essentiell, da Access die Anwendung
bei fehlender Fehlerbehandlung gnadenlos abschiesst.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

bahasu

Hi ekkehard

Zitat von: Beaker s.a. am März 11, 2012, 14:19:04
"zusätzlich"

... akzeptiert,  ;)
besonders den Zusatz, dass Fehler vermieden werden   :D

Harald
Servus

ebs17

Die (auf jeden Fall notwendige) Fehlerbehandlung sollte sich auf unerwartete Fehler beschränken.

Dass in einem Formular je nach Filterung evtl. keine Datensätze vorhanden sein können, dürfte spätestens nach dem ersten Auftreten nicht mehr unerwartet vorkommen. Zudem ist das ein mit wenig Aufwand prüfbarer Zustand:
Private Sub Form_Click()
  If Not Me.Recordset.EOF Then DoCmd.OpenForm ...
End Sub


MfGA
ebs
Mit freundlichem Glück Auf!

Eberhard