Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo, vieleicht kann mir ja doch einer helfen ... ;)

Habe eine Datenbank in Access angelegt, in der Lagereingänge erfasst und verwaltet werden sollen.

In dem eigendlichen Erfassungs - Formular hab ich ein Feld, welches auf seinen Inhalt abgefragt wird.

Private Sub Masseinheit_Exit(Cancel As Integer)

If IsNull(Masseinheit) Then

MsgBox "Bitte füllen Sie das Feld Masseinheit aus!"

Cancel = True

Me.Masseinheit.SetFocus

ElseIf Me.Masseinheit = "l*b" Then

Me.VE.Visible = False

Me.VE_Bezeichnungsfeld.Visible = False

Me.Länge.Visible = True

Me.Länge_Bezeichnungsfeld.Visible = True

Me.Breite.Visible = True

Me.Breite_Bezeichnungsfeld.Visible = True

Me.Länge.SetFocus

Else

Me.VE.Visible = True

Me.VE_Bezeichnungsfeld.Visible = True

Me.Länge.Visible = False

Me.Länge_Bezeichnungsfeld.Visible = False

Me.Breite.Visible = False

Me.Breite_Bezeichnungsfeld.Visible = False

Me.VE.SetFocus

End If

End Sub

Jetzt habe ich allerdings das folgende Problem.

Ich habe in diesem Formular einen Button, der dieses Formular schließen soll.

Sobald ich allerdings einmal dieses Feld "Masseinheit" aktiviert habe aber das Formular ohne zu speichern schließen will, kommt beim Klick auf den Beenden-Button die für dieses Feld angegebene Fehlermeldung, da es ja leer bleibt.

Wie kann ich es jetzt vermeiden, daß diese Fehlermeldung beim Klick auf "Beenden" erscheint ? :confused::confused:

hm ... Der Kleine

Das Problem is ja, dass die Fehlermeldung für das Feld "Masseinheit" in demm Moment angezeigt wird, in dem der Kurser dieses Feld verlässt und keine Daten eingetragen wurden.

Anders ausgedrückt, wenn ich in das Feld gehe und dann aber gleich den Button Beenden drücke, kommt die Fehlermeldung, auch wenn ich dem Button bei nem Click-Ereignis sage, er soll den Focus auf ein anderes Feld setzen.

Habe das Problem jetzt aber etwas anders gelöst


Private Sub Masseinheit_Exit(Cancel As Integer)
If IsNull(Masseinheit) Then
If MsgBox("Bitte füllen Sie das Feld Masseinheit aus", vbOKCancel) = vbOK Then
Cancel = True
Me.Masseinheit.SetFocus
Else
Cancel = False
Me.beenden.SetFocus
End If
ElseIf Me.Masseinheit = "l*b" Then
Me.VE.Visible = False
Me.VE_Bezeichnungsfeld.Visible = False
Me.Länge.Visible = True
Me.Länge_Bezeichnungsfeld.Visible = True
Me.Breite.Visible = True
Me.Breite_Bezeichnungsfeld.Visible = True
Me.Länge.SetFocus
Else
Me.VE.Visible = True
Me.VE_Bezeichnungsfeld.Visible = True
Me.Länge.Visible = False
Me.Länge_Bezeichnungsfeld.Visible = False
Me.Breite.Visible = False
Me.Breite_Bezeichnungsfeld.Visible = False
Me.VE.SetFocus
End If
End Sub

Wenn jetzt das Feld "Masseinheit" verlassen wird, kommt eben ne MsgBox mit Ok bzw. Abbrechen. Bei OK bleibt der Focus in dem Feld, bei Abbrechen geht er auf den Beenden-Button ... is zwar nich sehr sauber, aber funzt

[/PHP]

Moin,

wenn ich das richtig sehe, dann muss das Feld bei einem bestehenden Datensatz sehr wohl ausgefüllt sein und dann macht die Meldung ja auch Sinn. Anders sieht es bei einem neuen Datensatz aus.

Falls das so ist, dann kannst du in einer sinnvollen Art und Weise auswerten, ob das gerade ein neuer Datensatz ist:

If Me.NewRecord Then ...

hth

Reinhold

hm ... Der Kleine

Das Problem is ja, dass die Fehlermeldung für das Feld "Masseinheit" in demm Moment angezeigt wird, in dem der Kurser dieses Feld verlässt und keine Daten eingetragen wurden.

Anders ausgedrückt, wenn ich in das Feld gehe und dann aber gleich den Button Beenden drücke, kommt die Fehlermeldung, auch wenn ich dem Button bei nem Click-Ereignis sage, er soll den Focus auf ein anderes Feld setzen.

es sieht so aus, als ob das Feld in der Tabelle als Nichtleer definiert wurde. Dann sollte die Einheit natürlich ausgefüllt werden müssen und dein Ansatz ist korrekt.

Reinhold

Danke für deinen Tipp => If Me.NewRecord Then ...

Aber hierbei gehts ja eigendlich darum, neue Datensätze zu erfassen.

In diesem Formular (siehe Anhang) sind Felder enthalten, die je nach Inhalt des Feldes "Masseinheit" aus- bzw. eingeblendet werden, daher ist eine Eingabe ja auch erforderlich.

Allerdings möchte ich auch die Möglichkeit bieten, die Eingabe abzubrechen, ohne die Daten in die entsprechende Tabelle zu schreiben, also im Endeffekt sowas, wie das Drücken der ESC-Taste.

Der Kleine

danke ... ;)

Aber ab hier komm ich nich wirklich weiter.

:rolleyes::rolleyes:

post-16685-1443044783095_thumb.jpg

du kannst, sofern du diesen Datensatz wieder canceln willst, die befehlsfolge für Rückgängig anwenden, so daß der neue datensatz noch nicht erfasst ist und dann schliessen.

Bei bedarf suche ich auch die Stelle (aus meinen Programmierungen Access 97), diese sollte noch so geblieben sein.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.