Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Daten nach Import automatisch verändern?

Begonnen von Grimmie, März 12, 2015, 13:47:16

⏪ vorheriges - nächstes ⏩

Grimmie

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

MaggieMay

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.
Freundliche Grüße
MaggieMay

Grimmie

#2
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...

MaggieMay

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.
Freundliche Grüße
MaggieMay

bahasu

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
Servus

Grimmie

cool danke euch allen!
mit den Infos konnte ich nun was brauchbares für uns zusammenbasteln!