Hallo !
Ich habe ein kleines Anliegen mit dem ich mich seit Anfang letzter Woche beschäftige und nicht mehr weiterkomme. Es geht darum, dass in einer Access Datenbank die Felder Regnr_Jahr und Regnr mehrfach vorkommen. Durch eine Funktion/Makro oder ähnliches sollen alle Felder bei denen Regnr_Jahr und Regnr gleich sind so aktuallisiert werden, dass an Regnr fortlaufend beim 1. doppelt vorkommenden Datensatz .1 angehangen wird. Entsprechend für den nächsten .2 usw.
Das ganze soll dann so aussehen
Regnr_Jahr Regnr
2006 10001
2006 10002
2006 10002.1
2007 10002
2007 10003
2007 10003.1
2007 10003.2
ect.
Wäre super wenn mir jemand weiterhelfen könnte, ich kann leider kein VBA o.ö. ^^''
Seite 1 von 1
Dopplungen In Access Datenbank Kennzeichnen
Anzeige
#2
geschrieben 29. Juli 2008 - 12:12
Ich habe kurz mal in einer Lernpause den passenden VBA-Code erstellt. Dürfte selbsterklärend sein.
Keine Garantie, dass auch alles gutgeht
Gruß,
Stefan
Function doppelte_regnr_umbennenen() Dim db As Database Dim rs As Recordset Dim sSql As String Dim i As Integer sSql = "SELECT regnr_jahr, regnr, Count(regnr_jahr) AS Duplikate " & _ "FROM table_regnr " & _ "GROUP BY regnr_jahr, regnr " & _ "HAVING (Count(regnr_jahr)>1) AND (Count(regnr)>1);" Set db = CurrentDb Set rs = db.OpenRecordset(sSql, dbOpenSnapshot) If Not rs.EOF Then rs.MoveFirst Do While Not rs.EOF Debug.Print rs!regnr_jahr Debug.Print rs!regnr Debug.Print rs!Duplikate CurrentDb.Execute "DELETE FROM table_regnr WHERE regnr_jahr='" & rs!regnr_jahr & "' AND regnr='" & rs!regnr & "';" CurrentDb.Execute "INSERT INTO table_regnr (regnr_jahr, regnr) VALUES ('" & rs!regnr_jahr & "', '" & rs!regnr & "');" For i = 1 To (rs!Duplikate - 1) CurrentDb.Execute "INSERT INTO table_regnr (regnr_jahr, regnr) VALUES ('" & rs!regnr_jahr & "', '" & rs!regnr & "." & i & "');" Next i rs.MoveNext Loop rs.Close Set rs = Nothing Set db = Nothing End Function
Keine Garantie, dass auch alles gutgeht
Gruß,
Stefan
#3
geschrieben 29. Juli 2008 - 12:46
Vielen Dank !
Ich werds jetzt mal ausprobieren und mich dann nochmal melden
Ich werds jetzt mal ausprobieren und mich dann nochmal melden
#4
geschrieben 29. Juli 2008 - 12:56
Schöne Sache !!!
Es scheint alles wunderbar zu funktionieren! Besten Dank !
Es scheint alles wunderbar zu funktionieren! Besten Dank !
Thema verteilen:
Seite 1 von 1