WinFuture-Forum.de: Dopplungen In Access Datenbank Kennzeichnen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Dopplungen In Access Datenbank Kennzeichnen


#1 Mitglied ist offline   Cham 

  • Gruppe: aktive Mitglieder
  • Beiträge: 54
  • Beigetreten: 06. März 07
  • Reputation: 0

geschrieben 29. Juli 2008 - 08:15

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.ö. ^^''
0

Anzeige



#2 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 29. Juli 2008 - 12:12

Ich habe kurz mal in einer Lernpause den passenden VBA-Code erstellt. Dürfte selbsterklärend sein.

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 :rolleyes:

Gruß,
Stefan
0

#3 Mitglied ist offline   Cham 

  • Gruppe: aktive Mitglieder
  • Beiträge: 54
  • Beigetreten: 06. März 07
  • Reputation: 0

geschrieben 29. Juli 2008 - 12:46

Vielen Dank !

Ich werds jetzt mal ausprobieren und mich dann nochmal melden :rolleyes:
0

#4 Mitglied ist offline   Cham 

  • Gruppe: aktive Mitglieder
  • Beiträge: 54
  • Beigetreten: 06. März 07
  • Reputation: 0

geschrieben 29. Juli 2008 - 12:56

Schöne Sache !!!

Es scheint alles wunderbar zu funktionieren! Besten Dank !
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0