Office: (Office 2010) Doppelte Datensätze beim Erfassen verhindern

Helfe beim Thema Doppelte Datensätze beim Erfassen verhindern in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Leider klappt das Teil nicht, weil ich dann diese Windows-Nachricht bekomme: "Sie können nicht zu dem angegeben Datensatz springen." Windows sind... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Cerdo, 26. November 2012.

  1. Doppelte Datensätze beim Erfassen verhindern


    Windows sind Deine Datensätze egal. Das ist eine Accessmeldung. Nimmst Du solche Hinweise wahr?

    Und dann müsstest Du vorrangig Dir selber, ersatzweise uns erklären, warum es beim Ausfüllen eines Textfeldes zu einem Sprung auf einen anderen Datensatz kommen sollte:
    - Arbeitest Du in einem gebundenen Formular?
    - Arbeiten da zusätzlich Codes hinsichtlich Speichern?
    - Ist vielleicht nicht der neue, sondern der vorangegangene datensatz das Problem?
     
  2. Hallo und guten Morgen.

    Du hast natürlich recht, es ist eine Access-Meldung, sorry
    Also es kommt nicht zum Sprung in ein anderes Feld.
    Access gibt die Meldung nur aus und blockt dann weitere Eingaben ab.

    - Arbeitest Du in einem gebundenen Formular?
    Nein

    - Arbeiten da zusätzlich Codes hinsichtlich Speichern?[/color]
    Nein auch nicht. Ich speichere manuel

    - Ist vielleicht nicht der neue, sondern der vorangegangene datensatz das Problem?

    Kann ich nicht sagen - aber warum sollte er ? Es funzelt ansonsten alles
    bestens.
     
  3. Deine Informationsgaben dokumentieren nun nicht gerade, dass Du zügig zu einer Problemlösung kommen willst.
    In welcher Form genau? Haust Du mit der Faust auf den Tisch?

    Arbeitest Du überhaupt in einem Formular während der Eingabe?
     
  4. Doppelte Datensätze beim Erfassen verhindern

    Nee nicht ganz,
    und in Foren muss man immer etwas gedult haben....

    Ich arbeite in einem Formular und abspeichern geschied über
    einen Button "Neuer Datensatz erfassen" den ich über
    die Steuerelemente erzeugt habe. Das meinte ich mit manuel.
     
  5. OK. Dann übe Dich in solcher, bis jemand kommt, der den von Dir gezeigten Stil liebt.
     
  6. Ich dachte ich wäre in einem Forum und nicht in einem Abreagierungsseminar....
     
  7. Hallo Cerdo,
    Ich verwende zur Vermeidung von Doppeleingaben NIE die Tabellen-Feldfunktion "ohne Duplikate" - eben wegen der lästigen und unhandlichen Fehlermeldung. Stattdessen nutze ich zwei VBA-Routinen, in denen geprüft wird, ob überhaupt etwas eingegeben wurde oder ob die Eingabe schon vorkommt:

    1. Prüfen, ob Eingabe vorhanden:
    Code:
    2. Doppeleingabe melden:
    Code:
    Hoffentlich kannst Du damit etwas anfangen.
    Fritz
     
  8. Doppelte Datensätze beim Erfassen verhindern

    Hallo Fritz,

    danke für Deine Mühe und Deinen Lösungsvorschlag.

    Wie gehe ich das ganze jetzt am besten an?

    Soll ich das Indiz in der Tabelle wieder auf "Nein" setzen?
    Und an welcher Stelle im Formular ist der Einbau Deiner Strings
    am geeignesten gewählt?
     
  9. Hallo an alle die,
    die das gleiche Problem auch gerne einfach gelöst hätten:

    Es ist mehr als nur simpel wenn man das hier NICHT macht:

    Setze in der Tabelle bei diesem Feld die Eigenschaft NICHT AUF:
    Indiziert auf Ja (Ohne Duplikate). INDIZIERE AUF NEIN !

    Im Ereigniscode bei Vor Aktivierung !
    dort weiter dann mit :

    If DataErr = 3022 Then
    Response = acDataErrContinue
    MsgBox Me!MeinSteuerelement & " gibt es bereits.", vbOKOnly, "Duplikat!"
    Me!MeinSteuerelement.SetFocus
    End If

    Ich habe zwar jetzt ein paar Haare weniger, aber nur so funzelt es !

    Ich danke allen die, die sich mit meinem Problem Mühe gemacht haben.
    --------------------Gruß Cerdo-----
    Hilf dir selbst, nur dann wird dir geholfen (Pestalozzi)
     
  10. Mal abgesehen davon, dass ich meinen Tipp aus #6 praktikabler und effizienter finde (eigene Erfahrung bei ähnlichem Problem), eine Frage:

    Gibst Du immer nur Titel der gesamten DVD ein oder Titel innerhalb einer DVD/CD?
    Also z.B. alle Songs, die auf einer DVD sind? Sind das Originale oder auch gebrannte?
    Hintergrund: Ich hatte mal vor vielen vielen Jahren meine CDs "katalogisiert". Dazu hab' ich die CDs eingelegt und sämtliche verfügbaren Informationen automatisch ausgelesen - u.a. eine Art eindeutige ID-Nummer. Den Rest konnte ich optional manuell eingeben....als Hilight gleich noch BarCode-Etiketten gedruckt. Hilfreich war das natürlich "nur" bei selbstgebrannten Daten-, Software- CDs etc.
    Über die Datenbank konnte ich dann auch nach langer Zeit per Schlagwortsuche gleich die richtige CD greifen...
     
  11. Denkfrage:
    Code:
    Wenn man die Verhinderung von Duplikaten abschaltet, werden sicher auch keine Fehler bezüglich der Duplikate auftreten. Allerdings wird dann auch das Themenziel ("Doppelte Datensätze beim Erfassen verhindern") verfehlt. Eine sonstige Prüfung findet sichtbar auch nicht statt.
     
  12. Hallo,

    Ich habe was Du willst schon einmal gebaut. Mach es mal so:

    1. In der Tabelle wird das Feld "Titel" als string, indiziert, ohne Dublikate festgelegt.

    2. Lege ein LEERES Formular an. In dem Formular (es dient ausschließlich dem Anlegen neuer Datensätze für Deine Titel) legst Du genauso viele ungebundene Felder an wie Du in Deiner "Titel-"Tabelle hast. Wichtig. Das Formular muss ungebunden sein.Und es muss in der Standardsicht als "Einzelnes Formular" geöffnet werden. (Möchtest Du alle Titel im selben Formular angezeigt bekommen, bspw. als Liste, dann kannst Du später Deine Tabelle über ien ungebundenes Unterformular einbinden.)

    3. Jetzt schreibst Du einen Code: Bei mir gibt es jetzt mal nur den Titel, den Interpreten und das Album auf dem der Titel enthalten ist. (Das sind dann jetzt beispielhaft die Felder in Deiner Tabelle)

    Code:
    Public Function NeuerTitel(Titel, Interpret, Album)

    Dim rs As New ADODB.Recordset
    On Error GoTo Error

    rs.Open "Titeldatenbank", CurrentProject.Connection, adOpenKeyset, adLockOptimistic


    rs.AddNew
    rs![Titel] = Titel
    rs![Interpret] = Interpret
    rs![Album] = Album
    rs.Update
    DoCmd.RunCommand acCmdRefresh

    Error:
    If Err.Number = 13 Then
    'definiert, dass bei Fehler Code 13 der MSGBOX Text entsprechend zugewiesen wird (steuerung über Fehlercode)
    Beep
    MsgBox "Dieser Titel existiert schon."
    Else: MsgBox ("Es gibt bereits einen Datensatz mit diesem Titel." + Chr(13) + "Ein Titel kann nicht doppelt angelegt werden.")
    Exit Function

    End Function

    Code Ende:


    4. Nun gehst Du zurück in Dein bereits angelegtes Formular. Dort benennst Du die Felder mit den Feldbezeichnungen Deiner Tabelle, also eines für Titel, eines für Interpret und eines für Album. Achte darauf, dass Du die Felder so formatiertst wie in Deiner Tabelle (als String, oder Zahl, oder Datum, je nachdem; bei mir sind alle Strings)

    Nun brauchst Du noch einen Button, also eine Schaltfläche. Leg diese an und binde in den Eigenschaften unter Ereignis "beim Klick" Dein Makro "NeuerTitel" (bzw. den Beispielcode von oben) ein.

    5. Speichern. Und testen.

    Hoffe es klappt.
     
  13. Doppelte Datensätze beim Erfassen verhindern

    Hallo,

    Ich habe was Du willst schon einmal gebaut. Mach es mal so:

    1. In der Tabelle wird das Feld "Titel" indiziert und ohne Dublikate festgelegt.

    2. Lege ein LEERES Formular an. In dem Formular (es dient ausschließlich dem Anlegen neuer Titel-Datensätze) legst Du genauso viele ungebundene Felder an wie Du in Deiner "Titel-"Tabelle hast. Wichtig. Das Formular muss ungebunden sein.Und es muss in der Standardsicht als "Einzelnes Formular" geöffnet werden. (Möchtest Du alle Titel im selben Formular angezeigt bekommen, bspw. als Liste, dann kannst Du später Deine Tabelle über ein ungebundenes Unterformular einbinden.)

    3. Jetzt schreibst Du einen Code: Bei mir gibt es jetzt mal nur den Titel, den Interpreten und das Album auf dem der Titel enthalten ist. (Das sind dann jetzt beispielhaft die Felder in Deiner Tabelle)

    Code:
    Public Function NeuerTitel(Titel, Interpret, Album)

    Dim rs As New ADODB.Recordset
    On Error GoTo Error

    [Achtung: Der Fehler wird ausgelöst wenn die Verletzung der Indizierung eintritt = Fehlercode 13 bei VBA; Dann wird Deine MSG Box aktiviert. Wenn Du das Feld nicht indizierst tritt kein Fehler auf und Du legst beliebig viele Datensätze mit gleichem Titel und was weiß ich noch an]

    rs.Open "Titeldatenbank", CurrentProject.Connection, adOpenKeyset, adLockOptimistic


    rs.AddNew
    rs![Titel] = Titel
    rs![Interpret] = Interpret
    rs![Album] = Album
    rs.Update
    DoCmd.RunCommand acCmdRefresh

    Error:
    If Err.Number = 13 Then
    'definiert, dass bei Fehler Code 13 der MSGBOX Text entsprechend zugewiesen wird (steuerung über Fehlercode)
    MsgBox "Es wurde kein Titel eingegeben. Ein Titel ist zwingend erforderlich."
    Else: MsgBox ("Es gibt bereits einen Datensatz mit diesem Titel." + Chr(13) + "Ein Titel kann nicht doppelt angelegt werden.")
    Exit Function

    End Function

    Code Ende:


    4. Nun gehst Du zurück in Dein bereits angelegtes Formular. Dort benennst Du die Felder mit den Feldbezeichnungen Deiner Tabelle, also eines für Titel, eines für Interpret und eines für Album. Achte darauf, dass Du die Felder so formatierst wie in Deiner Tabelle (als String, oder Zahl, oder Datum, je nachdem; bei mir sind alle Strings)

    Nun brauchst Du noch einen Button, also eine Schaltfläche. Leg diese an und binde in den Eigenschaften unter Ereignis "beim Klick" Dein Makro "NeuerTitel" (ich jetzt den Beispielcode von oben) ein.

    5. Speichern. Und testen.

    Hoffe es klappt. *grins
     
  14. Auch wenn das Thema erledigt ist, eine (kleine) Verständnisfrage:

    Besteht hier nicht generell die Möglichkeit, dass Titel mehrfach vorkommen können, halt von verschiedenen Interpreten gespielt, live oder im Studio usw. ?
    Dann hätte man doch wieder ein Problem.

    Viele Grüße
    Michael
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
Thema:

Doppelte Datensätze beim Erfassen verhindern

Die Seite wird geladen...
  1. Doppelte Datensätze beim Erfassen verhindern - Similar Threads - Doppelte Datensätze Erfassen

  2. vor dem Kopieren auf doppelte Datensätze prüfen!!!

    in Microsoft Excel Hilfe
    vor dem Kopieren auf doppelte Datensätze prüfen!!!: Hallo, ich kopiere per Makro von einer Tabelle in die andere gewünschte Datensätze, was auch gut funktioniert mit der Zeit wird die Datenmänge so groß, das ich auch ungewollt doppelte Datensätze...
  3. Doppelte Datensätze entfernen (Makro/VBA)

    in Microsoft Excel Hilfe
    Doppelte Datensätze entfernen (Makro/VBA): Servus, ich habe ein Problem mit einer Makro Funktion. Ich möchte per Makro in einem Tabellenblatt doppelte Datensätze entfernen. Die doppelten Datensätze werden anhand zweier Kriterien erkannt...
  4. Auflösen doppelter Datensätze

    in Microsoft Outlook Tutorials
    Auflösen doppelter Datensätze: Auflösen doppelter Datensätze Outlook 2013 Outlook 2010 Mehr... Weniger Wenn Sie versuchen, eine...
  5. Doppelte Datensätze finden und löschen

    in Microsoft Access Hilfe
    Doppelte Datensätze finden und löschen: Hi, hab ein kleines Problem. Die Daten für meine DB bekomme ich von einem Prpgramm als .mdb wochenweise (ohne Primärschlüssel), diese füge ich dann immer einer .mdb an um alles zusammen auswerten...
  6. Suchen nach doppelten Datensätzen mithilfe einer Abfrage

    in Microsoft Access Tutorials
    Suchen nach doppelten Datensätzen mithilfe einer Abfrage: Suchen nach doppelten Datensätzen mithilfe einer Abfrage Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007...
  7. Löschen von doppelten Datensätzen mithilfe einer Abfrage

    in Microsoft Access Tutorials
    Löschen von doppelten Datensätzen mithilfe einer Abfrage: Löschen von doppelten Datensätzen mithilfe einer Abfrage Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Mehr... Weniger...
  8. Kein doppelter datensatz

    in Microsoft Access Hilfe
    Kein doppelter datensatz: lso ich habe dank eines zusammen gesetzten Indexes erlangt dass, die Zimmernummer und das Check in datum nur einmal existieren kann. Der naechste Schritt ist es dass, in der Zeitspanne...
  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