63 Aufrufe
Gefragt in Datenbanken von
Hallo,

kann mir jemand einen VBA-Code geben wie ich doppelte Werte in einem Feld vermeide

es geht um das Feld "KundenNr"

Ich habe jetzt schon mehre ausprobiert, welche ich im Internet gefunden habe, aber bei mir funktioniert keiner, ich verzweifle schier, mache ich was falsch ?

Tabelle heißt: "Tabelle-Verpackung"

Spalte in dieser Tabelle heißt: "KundenNr"

Name vom Feld heißt: "Leser-Kunde"

Steuerelementinhalt heißt: "KundenNr"

Gruß Andreas

6 Antworten

0 Punkte
Beantwortet von xlking Experte (2k Punkte)

Hallo Andreas,

Einfachste Lösung ohne VBA: Gehe in die Entwurfsansicht der Tabelle und weise dem Feld Kundennummer einen (evtl. zusätzlichen) Primärschlüssel zu. Dann werden doppelte Werte gar nicht erst angenommen. Ein Feld vom Typ Autowert brauchst du dann nicht mehr, kannst es aber auch drin lassen. Dann sind halt beide Felder Primär.

https://www.youtube.com/watch?v=qfip5fBcfKc

Gruß Mr. K.

0 Punkte
Beantwortet von
Hallo Mr.K.

ja das wäre mir auch am liebsten gewesen und das habe ich auch probiert, nur er nimmt es nicht an, dann müßte ich den Primärschlüßel vom Autowert löschen und dann bringe ich es nicht mehr mit den Bezieheungen so hin, weil, das ist eine ältere Datenbank von mir, die ich gerade ein bißchen umschreiben möchte.

Du schreibst, ich kann es auch drin lassen, aber das läßt er nicht zu, sondern nur ein Feld indiziert ohne Duplikate :-(
0 Punkte
Beantwortet von xlking Experte (2k Punkte)
Bearbeitet von xlking
Hast du, wie im Video gezeigt, versucht beide Felder mit STRG+Click zu markieren und erst dann den Schlüssel zu setzen? Vielleicht musst du auch erst den Schlüssel bei AutoWert vorübergehend entfernen, bevor du ihn für beide Felder setzen kannst.

Prüfe in jedem Fall, ob die im Feld enthaltenen Werte bereits eindeutig sind. Sollte auch nur eine Dopplung vorkommen, wird Access beim Setzen des Schlüssels sicher meckern.

Wenn es im Video geht, sollte es eigentlich auch bei dir gehen. Es sei denn MS hat diese tolle Funktion aus den neuen Versionen rausgenommen. Kann ich mir aber nicht vorstellen, weil Access dann nicht mehr zu älteren Datenbanken abwärtskompatibel wäre.
0 Punkte
Beantwortet von
Hallo, jetzt habe ich nochmal rum probiert. Und zuerst geschaut, ob ich eine Verdoppelung habe. Und tatsächlich, drum lies er es auch nicht zu, jetzt konnte ich "ja,keine Duplikate möglich" einstellen. und wie du geschrieben hast sogar zwei Primärschüßel setzen (zuvor Beziehung löschen) und mit ein bißchen probieren die Beziehung wieder wie vorher herstellen.

Nur die Meldung, welche dann kommt, wenn man versucht eine gleiche Nummer einzugeben, ist für einen Laien, der dann das Programm mal bedienen soll, nicht ganz verständlich: "Sie können nicht zu dem angegebenen Datensatz springen"  

Danke dir mal, aber falls du doch noch einen passenden VBA-Code hast, dann wäre das auch schön :-)

Gruß Andreas
0 Punkte
Beantwortet von xlking Experte (2k Punkte)
Hallo Andreas,

ich habe leider schon seit Jahrzehnten kein Access mehr, kann also nur allgemeine Tipps geben. Aber wenn so eine Fehlermeldung kommt lässt sich diese doch bestimmt mit On Error überspringen. In etwa so: (ungetestet)

Sub Feld_Change()

On Error Goto Fehler:

'An dieser Stelle kommt dann dein Code zum Einfügen des Textboxwertes in das Tabellenfeld!

Fehler:
MsgBox "Dieser Eintrag existiert schon!"
Resume Next

Gruß Mr. K.
0 Punkte
Beantwortet von
Hallo,

leider weiß ich nicht, wenn die Systemmeldung von Access kommt: "Sie können nicht zu dem angegebenen Datensatz springen" wo dieser VBA-Code liegt und wie ich da dann hinkomme um deinen o.g. Vorschlag einzubauen.

Weiß niemand eine VBA-Code mit dem ganz am Anfang bezeichneten Feldern, wo ich zum z.B [beim Verlassen]  des Feldes, prüfen kann ob doppelte Werte vorliegen ?
...