Office: (Office 2016) Datensatz 1 von 5 Feldern als Pflichtfeld

Helfe beim Thema Datensatz 1 von 5 Feldern als Pflichtfeld in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo miteinander, wie bringe ich einem Formular bei, dass 1) bei Neuanlage eines neuen Datensatzes 2) bei Wechsel eines bestehenden Datensatzes 3)... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von MisterBurns, 2. Juli 2019.

  1. Datensatz 1 von 5 Feldern als Pflichtfeld


    Hallo miteinander,

    wie bringe ich einem Formular bei, dass
    1) bei Neuanlage eines neuen Datensatzes
    2) bei Wechsel eines bestehenden Datensatzes
    3) beim Schließen des Formulars
    mindestens eines von fünf bestehenden Feldern ausgefüllt sein muss? Sprich, legt der Benutzer einen neuen Datensatz an, soll er keine Möglichkeit haben, das Formular zu schließen oder den Datensatz zu verlassen, ohne dass er nicht zumindest ein Feld befüllt hat.

    Ich kann aber nicht alle Felder als Pflichtfelder festlegen.

    Momentan habe ich als Ereignis "Beim Anzeigen", allerdings fragt Access dann nur ab, wenn ich in diesen Datensatz wechsele, aber nicht, wenn ich ihn verlasse.

    Danke!

    :)
     
    MisterBurns, 2. Juli 2019
    #1
  2. Moin,
    für solche Checks nimm das Formularereignis "BeforeUpdate" und zusätzlich (bei Neuanlage) noch "Close".
    maike
     
    maikek, 4. Juli 2019
    #2
  3. Es gibt die Ereignisprozedur, die das kontrollieren kann:

    In Form_BeforeUpdate() kannst Du alle Felder vor dem Speichern prüfen, wenn ein Datensatz geändert oder neu hinzugefügt wurde.

    Wenn Cancel = True gesetzt wird, wird der Vorgang abgebrochen.

    Form_Unload() wird beim Schliessen ausgeführt und lässt sich ebenfalls abbrechen.
     
    hcscherzer, 4. Juli 2019
    #3
  4. Datensatz 1 von 5 Feldern als Pflichtfeld

    Hallo,
    im Anhang ein einfaches Beispiel.
     
    gpswanderer, 4. Juli 2019
    #4
  5. Liebe Leute, vielen Dank schon mal für eure tolle Hilfe!
    Ich habe es jetzt versucht so einfach wie möglich zu lösen:

    Code:
    Der Before_Update-Teil funktioniert soweit bei einem bestehenden DS und bei der Anlage eines neuen DS. Wenn ich allerdings das Formular schließe, kommt zwar die Msgbox, es wird dann aber trotzdem geschlossen (und der DS gespeichert).
     
    MisterBurns, 4. Juli 2019
    #5
  6. Hallo Berni,

    du musst das Cancel noch ByRef mit übergeben, damit Pruefung den Inhalt von Cancel in den Event-Handlern beeinflussen kann.

    Viele Grüße
    derHöpp
     
    derHoepp, 4. Juli 2019
    #6
  7. Du programmierst schlampig!

    Würdest du Option Explicit verwenden würde der Compiler gleich schreien, wenn du eine Variable ohne Deklaration verwendest.

    Sowohl das Update als auch das Unload Event übergeben Cancel byRef.
    Warum wohl?
    Dieser Wert wird nach dem Aufrufen des Events ausgewertet.
    Du musst also den Wert der übergebenen Variable ändern und nicht den Wert "irgend einer" Variable.
     
    markusxy, 4. Juli 2019
    #7
  8. Datensatz 1 von 5 Feldern als Pflichtfeld

    Hab nie was anderes behauptet *Smilie
    Bitte um Nachsicht mit mir, ich bin Spaghetticodeschreiber.

    Nun hab ich also
    Code:
    drin, bin aber immer noch nicht wirklich schlauer. Nun kommt beim Eventhandler von Form_Unload
    Bitte für doofe erklären.
     
    MisterBurns, 4. Juli 2019
    #8
  9. Aber gerne doch, wir kriegen dich schon noch zum Copy and Paste-Programmierer! *Smilie

    PHP:
             Private Sub Form_BeforeUpdate(Cancel As Integer)
    Pruefung Cancel
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Pruefung Cancel
    End Sub

    Private Sub Pruefung(ByRef myCancel as Integer)
    'Prüft, ob zumindest eines der Felder KSt, Innenauftrag, PSP-Element, FAUF oder Anlagennummer ausgefüllt wurde
    Dim lngDS As Long

    If IsNull(Me!cboKSt) And IsNull(Me!Innenauftrag) And IsNull(Me![PSP-Element]) And IsNull(Me!FAUF) And IsNull(Me!Anlagennummer) Then
    MsgBox "Mindestens eines der Felder '
    Kostenstelle', 'Innenauftrag', 'PSP-Element', 'FAUF' oder 'Anlagennummer muss ausgefüllt werden!", , "Unvollständig"
    myCancel = True
    Me!cboKSt.SetFocus
    End If
    End Sub
     
    derHoepp, 4. Juli 2019
    #9
  10. Vielleicht zuerst mal über die Fehlermeldung nachdenken.
    Da solltest du nach über 3000 Kommentaren schon selbst drauf kommen.
     
    markusxy, 4. Juli 2019
    #10
  11. Danke Höpp!

    Tatsächlich habe ich mir mein ganzes VBA-Wissen auf genau diese Weise (und mit ein paar Tutorials) zusammengeschustert. Dass dadurch einige Unzulänglichkeiten vorhanden sind, ist mir natürlich bewusst. Ich muss aber sagen, dass es mir wirklich schon sehr geholfen hat, vor allem in Excel.

    Nochmals ein dickes Danke an euch alle!
    @Klaus: Spitzenlösung, ich bin allerdings nicht ganz dahintergestiegen bzw. war mir dann der Aufwand zuviel *Smilie

    @markus: Siehe oben. Wenn mir die Fehlermeldung etwas gesagt hätte, hätte ich das Problem alleine gelöst. Bin a ned auf der Nudlsuppn dahergschwumman.
     
    MisterBurns, 4. Juli 2019
    #11
  12. Hallo,
    warum nicht einfach so:
    Code:
    Das entspricht meinem Beispiel.
     
    gpswanderer, 4. Juli 2019
    #12
  13. Datensatz 1 von 5 Feldern als Pflichtfeld

    PHP:
             Tatsächlich habe ich mir mein ganzes VBA-Wissen auf genau diese Weise (und mit ein paar Tutorialszusammengeschustert
     
    derHoepp, 4. Juli 2019
    #13
  14. Deswegen sollst du ja darüber nachdenken.
    Das darf auch ruhig mehr als eine Sekunde dauern.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 4. Juli 2019
    #14
  15. \@Markus: Danke für deine Hinweise, du hast mich wieder etwas geerdet. Ich werde mich nächstes mal selbst bei der Nase nehmen und mit meinen Antworten im Excelforum weniger kritisch mit Nutzern sein. Deine Antworten haben mir wirklich wieder gezeigt, wie leicht man sich zu wenig hilfreichen Hinweisen verleiten lässt.

    Ich werde hier noch weitere Fragen stellen - bitte antworte nur, wenn du mir helfen willst. Aussagen wie "man darf gerne drüber nachdenken" kannst du stecken lassen. Ich investiere genug Zeit in Googlesuchen für Lösungen - wenn ich hier frage, dann wirklich, weil ich nicht weiterweiß.

    Thema ist für mich erledigt, schönes Wochenende an alle.
     
    MisterBurns, 4. Juli 2019
    #15
Thema:

Datensatz 1 von 5 Feldern als Pflichtfeld

Die Seite wird geladen...
  1. Datensatz 1 von 5 Feldern als Pflichtfeld - Similar Threads - Datensatz Feldern Pflichtfeld

  2. Filtern von Datensätzen

    in Microsoft Excel Hilfe
    Filtern von Datensätzen: Guten Abend erst einmal, ich bin neu hier im Forum und wollte gerne Euer Schwarmwissen um Hilfe bitten. Meine Excelversion ist Version 16.87 (24071426) Ich habe folgendes Problem. Ich habe eine...
  3. Datensatz löschen wenn feld x leer ist

    in Microsoft Access Hilfe
    Datensatz löschen wenn feld x leer ist: Hallo zusammen, habe wieder eine frage... und hoffe auf Hilfe! ich habe in einem endlosesfrm mit Filterbedingung ein Button, beim Klicken wird bei gefilterten Datensätze ein Feld geleert. nun...
  4. Felder automatisch beim Anlegen eines neuen Datensatzes füllen

    in Microsoft Access Hilfe
    Felder automatisch beim Anlegen eines neuen Datensatzes füllen: Hallo, ich bin jetzt fast am Verzweifeln! Folgendes bekomme ich einfach nicht auf die Reihe: Ich arbeite gerade an einer Access-Datenbank, mit der ich Firmen und dazugehörige Projekte verwalte....
  5. Per Abfrage alle Datensätze anzeigen, die in einem Feld gleichen Wert haben

    in Microsoft Access Hilfe
    Per Abfrage alle Datensätze anzeigen, die in einem Feld gleichen Wert haben: Hallo zusammen, ich möchte folgendes erreichen: Ich habe eine Tabelle mit Kundenadressen. Nun möchte ich, dass mir eine Abfrage alle die Datensätze auswirft, die im Feld "firma" den gleichen...
  6. Sortieren von Datensätzen auf der Grundlage von Teilwerten in einem Feld

    in Microsoft Access Tutorials
    Sortieren von Datensätzen auf der Grundlage von Teilwerten in einem Feld: Sortieren von Datensätzen auf der Grundlage von Teilwerten in einem Feld Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010...
  7. Datensätze mit leerem Feld in Spalte löschen

    in Microsoft Access Hilfe
    Datensätze mit leerem Feld in Spalte löschen: Hallo, wie kann ich aus einer Datentabelle alle Zeilen löschen, bei denen in der Spalte "Preis" (Zellenformat Zahl) kein Wert, also isempty, ist? DELETE * FROM Datentabelle WHERE...
  8. Zusammenführen einzelner Felder von mehreren Datensätzen

    in Microsoft Access Hilfe
    Zusammenführen einzelner Felder von mehreren Datensätzen: Hallo, ich habe folgendes Problem: Ich habe mehrere Datensätze in einer Tabelle. Die Datensätze bestehen z. B. aus folgenden Feldern: Nr, Name, Strasse1, Strasse2, PLZ1..... Eine Nr kann...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden