Hallo zusammen!
Ich versuche meine Problematk mal an einem möglichst einfachen Beispiel darzustellen:
gepflegt wird eine Tabelle mit Artikeln bestehend aus zB
IdentNr ModellNr Bezeichnung VÖDatum Duplikat
12345678 1a Test1 01.01.2000 ja
23456789 2a Test2 01.01.2000 nein
34567890 1a Test3 02.05.2001 nein
55412457 1b Test4 08.08.2014 nein
12345678 2a Test1 01.03.2015 ja
wenn ich nun neue Datensätze importiere in die vorhandene Tabelle in der Datenbank reinkopiere,
ist es möglich, falls es die IdentNr schon gibt, das Feld Duplikat automatisch auf "Ja" zu setzen ?
Ich könnte auch mit einer Butoon Lösung leben, also Button drücken, dann check ob Nummer schon vorhanden.
Beispielsweise wäre der neue Datensatz das hier (Feld Duplikat natürlich noch leer):
34567890 2a Test3 02.03.2015
nach dem Import sollten dann alle Sätze mit der IdentNr 34567890 das Feld Duplikat auf "ja" haben.
hoffe ich könnte halbwegs rüberbringen was ich vorhabe .)
Danke schonmal!
Grimmie
Hallo,
wenn alle doppelten Datensätze das Merkmal erhalten sollen, ist es relativ einfach mit Hilfe einer Abfrage umzusetzen.
Beispiel:
Update tabelle Set Duplikat = (DCount("*","tabelle","IdentNr=" & IdentNr) > 1)
dabei gehe ich davon aus, dass es sich bei "Duplikat" um ein Ja/Nein-Feld handelt.
ich muss noch erwähnen dass ich grade erst wieder anfange mit Access zu arbeiten und mir das meiste nur so selber erarbeitet bzw angelesen habe. aber zurück zum Thema:
wie müsste das aussehen wenn's kein ja/nein Feld ist sonder ein Standard Text ?
ich hab folgendes mal testweise daraus gebaut:
If (DCount("*", "Tabelle", "IdentNr='" & Me!IdentNr & "'") > 1) Then
Me!Duplikat.Value = "1"
End If
so wird für den aktuellen Datensatz das Feld Duplikat auf 1 gesetzt (das Feld ist ein Textfeld, nicht ja/nein)
was fehlt damit es bei ALLEN gesetzt wird ? Toll wäre auch ein einziger Button der alle neuen Identnummern prüft und entsprechend die Duplikatzeile setzt...
Was soll denn nun tatsächlich in dem Feld stehen, Ja oder Nein oder 1 oder ?
So ginge es mit Ja/Nein:
Update tabelle Set Duplikat = IIf(DCount("*","tabelle","IdentNr=" & IdentNr) > 1, "Ja", "Nein")
Das ist jetzt aber nicht unbedingt massentauglich, so geht es evtl. schneller:
Update tabelle Set Duplikat = "Ja" Where IdentNr IN (Select IdentNr From tabelle Group By IdentNr Having Count(*) > 1)
Das hat aber den Nachteil, dass du Ja und Nein nur getrennt, d.h. in separaten Abfragen, setzen kannst.
Hi,
statt der Speicherung der Duplikat-Information ist es auch möglich, mit einer Abfrage diesen Hinweis zu geben. Dann ist es nicht mehr notwendig, nach einem Datenimport die Untersuchung auf Duplikate zu machen und deren Ergebnis zu speichern.
Im Anhang gibt es solch eine Abfrage, die mit einer Unterabfrage prüft, ob es zu einer IdentNr bereits einen Eintrag gibt, der einen anderen ID-Wert (auto-Feld) hat.
Wenn ja, dann wird "Duplikat" angezeigt.
Harald
cool danke euch allen!
mit den Infos konnte ich nun was brauchbares für uns zusammenbasteln!