Dublikate Verhindern
Abfangen von Dublikaten.
Hallo,
hat jemand eine Idee wie man diese Fehlermeldung abfangen kann?
Hab versucht dublikate mit nem Index zu verhindern aber das sieht etwas unschön aus...
vll. gibt es ja eine elegantere Lösung.
Vor aktualisierung prüfen...
und dann wenn vorhanden Cancel.. oder so..
Die Spalte nennt sich IP_ID
und dort sind eben Nummern von 1-> 999
Das Problem ist das jenes Feld intern mehrere Spalten hat... ich weiß nicht wie man das in der Konstelation handhabt.
[edit: 8.4.10]
Es geht um eine Access Datenbank richtig =)
Aber die "Lösung" liegt im VBA Code...
Soweit so gut... habe es notdürftig mit nem Index gelöst das die Nummern in "PI_ID" nicht doppelt vorhanden sein können. Aber die unwissendlichen Büroarbeitskräfte kennen sich damit nicht aus und sollen die tabelle nur befüllen deshalb. Sollte eine andere Lösung her... die Diese Fehlermeldung abfängt.
Hallo,
hat jemand eine Idee wie man diese Fehlermeldung abfangen kann?
Hab versucht dublikate mit nem Index zu verhindern aber das sieht etwas unschön aus...
vll. gibt es ja eine elegantere Lösung.
Vor aktualisierung prüfen...
und dann wenn vorhanden Cancel.. oder so..
Die Spalte nennt sich IP_ID
und dort sind eben Nummern von 1-> 999
Das Problem ist das jenes Feld intern mehrere Spalten hat... ich weiß nicht wie man das in der Konstelation handhabt.
[edit: 8.4.10]
Es geht um eine Access Datenbank richtig =)
Aber die "Lösung" liegt im VBA Code...
Soweit so gut... habe es notdürftig mit nem Index gelöst das die Nummern in "PI_ID" nicht doppelt vorhanden sein können. Aber die unwissendlichen Büroarbeitskräfte kennen sich damit nicht aus und sollen die tabelle nur befüllen deshalb. Sollte eine andere Lösung her... die Diese Fehlermeldung abfängt.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140065
Url: https://administrator.de/contentid/140065
Ausgedruckt am: 05.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
Ich verstehe nicht ganz.
Du hast also eine Tabelle, die eine Spalte IP_ID hat. Diese Spalte soll UNIQUE INDEX sein.
Und du möchtest jetzt, dass die Fehlermeldung unterdrückt wird, bzw besser behandelt wird und durch deine eigene ersetzt wird, wenn du neue Spalten per INSERT hinzufügst ?
Geht es hier um eine selbsterstelle Maske, eine Abfrage, ein VB Skript ?
Ein paar mehr Details wären schön.
Du hast also eine Tabelle, die eine Spalte IP_ID hat. Diese Spalte soll UNIQUE INDEX sein.
Und du möchtest jetzt, dass die Fehlermeldung unterdrückt wird, bzw besser behandelt wird und durch deine eigene ersetzt wird, wenn du neue Spalten per INSERT hinzufügst ?
Geht es hier um eine selbsterstelle Maske, eine Abfrage, ein VB Skript ?
Ein paar mehr Details wären schön.
Moin Moin
@RedWraith
Ein Index ist da genau das richtige.
@Cyberkey
Ist natürlich Arbeit. Aber wie sagt man: Wer schön sein will muß leiden.
Gruß L.
@RedWraith
Du hast also eine Tabelle, die eine Spalte IP_ID hat. Diese Spalte soll UNIQUE INDEX sein.
Warum? Evtl hat er schon einen PK. Darüber hinaus geht es hier offenbar um ein Feld das Benutzereingaben enthällt.Ein Index ist da genau das richtige.
Geht es hier um eine selbsterstelle Maske, eine Abfrage, ein VB Skript ?
Es handelt sich wohl um eine Access DB.Ein paar mehr Details wären schön.
Das sehe ich auch so.@Cyberkey
Vor aktualisierung prüfen...und dann wenn vorhanden Cancel oder so.
Genau So.Ist natürlich Arbeit. Aber wie sagt man: Wer schön sein will muß leiden.
Gruß L.
Moin Moin
Das Formularfeld IP_Eingabe ist doch ein Kombinationsfeld.
Dies hat die Eigenschaft "gebundene Spalte". Das ist bei mehrspaltigen Kombinationsfeldern genau die, deren Wert mit Me!IP_eingabe ausgegeben wird.
D.h. ein deinen Fall: setz die gebundenen Spalte auf 2 und Me!IP_eingabe hat den Wert Ohne "Punkt"
(Kannst du dir ja mal in einer msgbox ausgeben lassen.)
Darüber hinaus solltest Du im DCount die Hochkommas um Me!IP_eingabe weglassen.
Damit machst du aus deiner Zahl wieder einen String.
Gruß L.
Das Formularfeld IP_Eingabe ist doch ein Kombinationsfeld.
Dies hat die Eigenschaft "gebundene Spalte". Das ist bei mehrspaltigen Kombinationsfeldern genau die, deren Wert mit Me!IP_eingabe ausgegeben wird.
D.h. ein deinen Fall: setz die gebundenen Spalte auf 2 und Me!IP_eingabe hat den Wert Ohne "Punkt"
(Kannst du dir ja mal in einer msgbox ausgeben lassen.)
Darüber hinaus solltest Du im DCount die Hochkommas um Me!IP_eingabe weglassen.
If DCount("*", "Hardware_????", "[IP_ID]="& Me!IP_eingabe) > 0 Then
..
Gruß L.