Office: (Office 2007) Doppeleintrag verhindern + MsgBox

Helfe beim Thema Doppeleintrag verhindern + MsgBox in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Gemeinde! Ich habe gerade eben ein Problem bei meiner DB gefunden. Und zwar überprüfe ich unter "Vor Aktualisierung" eines Textfeldes ob... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Chris_Lance, 28. Juli 2013.

  1. Doppeleintrag verhindern + MsgBox


    Hallo liebe Gemeinde!

    Ich habe gerade eben ein Problem bei meiner DB gefunden. Und zwar überprüfe ich unter "Vor Aktualisierung" eines Textfeldes ob der eingegebene Wert bereits in dem Tabellen-Feld vorhanden ist, falls dies der Fall sein sollte, soll eine Messagebox ausgegeben werden. Bis dahin funktioniert es ja auch soweit, aber ich bekomme immer auch noch eine Meldung mit "Der Wert verstößt gegen die Gültigkeitsprüfungsregel des Feldes oder Datensatzes" dazu und weiß nicht was ich dagegen machen kann. Ich habe keinerlei Gültigkeitsregeln aufgestellt, einzig und allein das Textfeld muss einen Wert erhalten. Klasse wäre es wenn das Textfeld gleich zurückgesetzt werden würde, wenn der If zutreffen sollte.

    Mein Code:

    Code:
    Könnt ihr mir vllt. helfen?!

    LG

    :)
     
    Chris_Lance, 28. Juli 2013
    #1
  2. Wenn in der Tabelle den entsprechenden Index für das Feld auf "Keine Duplikate" gesetzt ist, kann man das Error-Ereignis des Formulars verwenden:
    Code:
     
    Smaug, 30. Juli 2013
    #2
  3. Irgendwie funktioniert das nicht bei mir. Habe deinen Code Unter "Bei Fehler" reinkopiert und nochmal nachgesehen ob timesheet_no auf "Ohne Duplikate" steht, aber wenn ich einen Wert eingebe, der bereits in dem Feld ist, so sagt er bis zum Ende des Formulars gar nichts, erst wenn ich speichern will meint er, dass er nicht zu den angegebenen Datensatz springen kann.

    Irgendwas muss ich falsch machen...

    LG
     
    Chris_Lance, 30. Juli 2013
    #3
  4. Doppeleintrag verhindern + MsgBox

    Hi,

    welchen Datentyp hat das Datenfeld? Ist es vom Typ Zahl, so lass die Hochkommata weg.
    dazu kannst du Undo einsetzen, Feld- oder Formular-bezogen.
     
    Anne Berg, 30. Juli 2013
    #4
  5. Hallo,

    also Datentyp des Feldes ist "Text".

    Also zurücksetzen des Textfeldes würde ich das dann mit diesem Befehl(?!?!):

    Code:
    ?!?!

    LG
     
    Chris_Lance, 30. Juli 2013
    #5
  6. Ja, genau.
     
    Anne Berg, 30. Juli 2013
    #6
  7. Hmm... Also ich bekomme dennoch immer wieder zusätzlich zu meiner Msgbox ("This Timesheetnumber...") jene mit der Gültigkeitsregel, völlig unabhängig was ich mache. Das zurücksetzen mittels Befehl funktioniert auch nicht sorecht, zwar habe ich einen Fehler gehabt, weil das Textfeld "timesheet_no_field" heißt und nicht "timesheet_no" (=Tabellenfeld), aber es funktioniert dennoch nicht, dass der Inhalt rausgelöscht wird bzw. zurückgesetzt wird.

    Code:
    Vielleicht fällt euch auf was mein Problem ist bzw. ich falsch mache?!

    LG
     
    Chris_Lance, 30. Juli 2013
    #7
  8. Doppeleintrag verhindern + MsgBox

    Wenn Undo im BeforeUpdate-Ereignis nicht funktioniert, könntest du das Feld auf NULL setzen.
     
    Anne Berg, 30. Juli 2013
    #8
  9. Man sollte das BeforeUpdate des Formulars benutzen. Da erfolgt unmittelbar danach eine Datensatzspeicherung.
     
    ebs17, 30. Juli 2013
    #9
  10. \@ ebs17: Also deine Methode funktioniert fast. Zumindest ist diese Gültigkeitsmeldung nun endlich weg, allerdings kommt jetzt die Meldung "Sie können nicht zu den angegebenen Datensatz springen". Kann man diese irgendwie unterdrücken oder umgehen?

    @ Anne: Also ich habe die Undo-Funktion versucht, aber er löscht mir den Inhalt des Textfeldes nicht. Habe es nun so versucht wie du es gesagt hast mit dem NULL setzen (also falls meine Syntax so richtig ist), jedoch bekomme ich genau in dieser Zeile eine Fehlermeldung.

    Code:
    LG
     
    Chris_Lance, 30. Juli 2013
    #10
  11. Ein "Sprung zu einem angegebenen Datensatz" fällt vom Himmel oder ist in irgendeiner Form programmatisch veranlasst?

    Im zweiten Fall solltest Du Dein Formular besser kennenlernen und verstehen, was da passiert. Im ersten Fall besser Formular löschen und neu anlegen.

    Das ist schon etwas schief in der Aussage, wenn man eigenen "Murks" hinzukombiniert.
     
  12. Ist mit Sicherheit "programmatisch" veranlasst diese Meldung. Habe das mit Sicherheit nicht optimal bzw. wahrscheinlich sogar schlecht gelöst, da ich nicht wirklich die besten Kenntnisse habe.

    Und zwar werden Daten in das Formular eingegeben und mit Klick eines "Save-Buttons" wird dann folgender "Code" ausgeführt.

    Code:
    Und in diesem Punkt wird höchstwahrscheinlich auch der Hund begraben liegen. Habe mir auch überlegt dies noch mit einem INSERT INTO zu lösen, aber ich weiß nicht ob ich damit das Problem behoben hätte.

    LG
     
    Chris_Lance, 30. Juli 2013
    #12
  13. Doppeleintrag verhindern + MsgBox

    Code:
    Da habe ich keine Übung damit.

    Wozu dient das? Dem User einen Klick in die richtige Zeile ersparen? Dafür aber soll er einen Speichern-Button klicken, der aber nicht das Speichern auslöst, sondern einen Datensatzwechsel, der dann Ursache für ein Speichern ist, nun aber durch das BeforeUpdate behindert wird ...

    Bei mir würde ein User einfach selber in die Eingabezeile für einen neuen Datensatz klicken, womit durch den Datensatzwechsel der Speichernvorgang des editierten Datensatzes ausgelöst würde, aber dann durch das BeforeUpdate gesteuert würde.
     
  14. Sagen wir einfach so, es hatte zu diesem Zeitpunkt seinen Zweck erfüllt. Es hat mir die Eingabe in den Datensatz erledigt und gespeichert und danach einen neuen Record angelegt. Ziel ist es einen Datensatz in einer Tabelle mittels dem Formular zu speichern. Und zwar sollen die Textfelder am Formular ausgefüllt werden und dann mittels Speicherbutton in der Tabelle gespeichert werden.

    Habe nun etwas herumexperimentiert mit einem "richtigen" (von Access vorgeformten Speicherbutton), aber ob der so funktioniert wie ich es gerne hätte kann ich nicht wirklich sagen bzw. löscht er mir nach dem Speichern nicht die Inhalte der Textfelder (er setzt sie nicht zurück).

    LG
     
    Chris_Lance, 30. Juli 2013
    #14
  15. Nochmal: In einem gebundenen Formular braucht man kein gesondertes Speichern mittels Button (außer bei begründeten Ausnahmen). Denn hier wird ein editierter oder neu angelegter Datensatz bereits automatisch gespeichert, wenn dieser Datensatz verlassen wird (Datensatzwechsel, Formularwechsel, Formular schließen u.ä.)

    Wenn man aber im Datensatz bleibt und explizit speichern will, damit z.B. die Änderungen in Abfragen, Berichten u.a. Formularen sofort wirksam werden können, gibt es direkte Speicher-Anweisungen:
    Code:
    Bevor man diese aber ausführt, würde man in Deinem Fall die Prüfung auf Duplikat voranstellen und in Abhängigkeit davon speichern oder aber verwerfen.

    Hat man nun diesen Speichern-Button, muss man nun doppelt prüfen, denn ein User könnte immer noch auf die Idee kommen und einfach das Formular schließen.
     
Thema:

Doppeleintrag verhindern + MsgBox

Die Seite wird geladen...
  1. Doppeleintrag verhindern + MsgBox - Similar Threads - Doppeleintrag verhindern MsgBox

  2. Seitenumbruch bei Worttrennung verhindern

    in Microsoft Word Hilfe
    Seitenumbruch bei Worttrennung verhindern: Hallo zusammen, folgendes Problem: Wenn die (eigentlich) letzte Zeile einer Seite mit einem getrennten Wort (Silbentrennung) endet, dann macht Word den Seitenumbruch zumeist vor dieser Zeile,...
  3. Textüberlauf in Spalte verhindern

    in Microsoft Excel Hilfe
    Textüberlauf in Spalte verhindern: Hallo! Ich benötige Hilfe mit einer Excel-Tabelle. Ich möchte den Textüberlauf einer Spalte in die nächste verhindern. Habe das versucht über "Zellen formatieren / Horizontal / Ausfüllen". Klappt...
  4. Verhindern, dass sich Zellenverknüpfungen in andere Arbeitsmappen automatisch anpassen

    in Microsoft Excel Hilfe
    Verhindern, dass sich Zellenverknüpfungen in andere Arbeitsmappen automatisch anpassen: Hallo Zusammen, ich suche nach einer Möglichkeit die automatische Anpassung von Verknüpfungen zwischen unterschiedlichen Arbeitspappen zu verhindern, oder den Pfad aus einer Zelle zu verwenden....
  5. Verhindern, das Excel mehrere Zeilen ausgibt

    in Microsoft Excel Hilfe
    Verhindern, das Excel mehrere Zeilen ausgibt: Hallo, ich ärgere mich gerade wegen einer Formel Herum excel gibt mir mehr Zeilen aus ( was ich nicht möchte. A die Formel lautet so...
  6. Doppelte Einträge verhindern ohne Primärschlüssel

    in Microsoft Access Hilfe
    Doppelte Einträge verhindern ohne Primärschlüssel: Folgendes Problem: habe ein Tabellenfeld (Zahl) ohne Primärschlüssel. Wie kann ich doppelte Einträge verhindern, indem ich auswählen kann ob ja oder nein (Doppelte Einträge sollen grundsätzlich...
  7. Scrollen verhindern

    in Microsoft Excel Hilfe
    Scrollen verhindern: Hallo Forum, Mit folgendem Code versuche ich das Scrollen auf meinem Tabellenblatt zu verhindern. Private Sub Workbook_Open() Sheets("INDEX").ScrollArea = "A1:P36"...
  8. Doppeleinträge aus Dropdownliste

    in Microsoft Excel Hilfe
    Doppeleinträge aus Dropdownliste: Hallo! Ich habe hier schon einige Beiträge gelesen und konnte mir damit auch schon in dem einen oder anderen Fall weiterhelfen. Zu meinem jetzigen Problem habe ich aber leider bisher noch...
  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