VBA: Mehrfache Werte entfernen

10/02/2009 - 13:08 von Raphael Boos | Report spam
Hallo liebe Newsgroup :)

Hab da eine Frage. Ich habe eine Access Tabelle, in der Daten drin sind.
Diese Tabelle hat aber keinen Primàrschlüssel. Um diesen zu vergeben, muss
eine ID vergeben werden, also ein eindeutiger Wert. Diesen habe ich auch,
allerdings mehrfach. Die Mehrfachen kann ich löschen, da der Wert, welcher
die Daten mehrfach macht, nicht von nöten sind. Nun habe ich ein Problem. Vom
Code her möchte ich, dass es den ersten Wert nimmt und mit jedem Wert in der
Tabelle bzw. der Spalte vergleicht und, falls die gleich sind, die gefundene
Zeile bzw. das gefundene Recordset löscht. Wenn es dann eine leere Zeile bzw.
ein leeres Recordset hinterlàsst, dieses auch wieder löscht. Wenn der Wert
nicht gleich ist, soll er zum nàchsten Wert runtergehen und den vergleichen.
Ich hab da mal ein bisschen angefangen, komme aber nicht mehr weiter:



Dim RS As Recordset
Dim Datensaetze As Integer
Dim DatensaetzeNeu As Integer
Dim strZeile As String
Dim strZeileNeu As String
Dim DB As String
Dim K As Integer
Dim J As Integer

Set DB = CurrentDb
Set RS = DB.OpenRecordset(TABELLE)

RS.MoveLast 'Zum letzten Recordset springen
Datensaetze = RS.RecordCount 'Anzahl Recordsetz in Variable schreiben
DatensaetzeNeu = RS.RecordCount 'Anzahl Recordsetz in Variable schreiben

RS.MoveLast 'Wenn dies nicht gemacht wird, bringt er RS.RecordCount = 1 am
Anfang
RS.MoveFirst 'An den Anfang gehen (RS.RecordCount = 0)

For K = 0 To Datensaetze - 1
strZeile = RS.Fields(SPALTE) '1. Wert der ausgewàhlten Spalte in
Variable schreiben
For J = 0 To DatensaetzeNeu - 1 'DatensaetzeNeu, weil es sonst auch
von hier abzàhlt
strZeileNeu = RS.Fields(SPALTE)

'-- HIER WERDEN DIE DATENSÄTZE VERGLICHEN UND GGF. GELÖSCHT

RS.MoveNext
Next J
DatensaetzeNeu = DatensaetzeNeu - 1
RS.MoveLast 'Ist wahrscheinlich falsch
RS.MoveFirst 'Ist wahrscheinlich falsch
Next K




Allerdings geht schon das nicht. Kann mir einer helfen?

Was ich eigentlich machen will... Jeder Datensatz mit jedem vergleichen und
dann den gefundenen löschen, wenn er gleich ist.

Hoffe jemand kann mir helfen ^^

Mit freundlichen Grüssen
Raphael Boos
 

Lesen sie die antworten

#1 Raphael Boos
10/02/2009 - 13:14 | Warnen spam
sry für doppelpost, gab bei mir zuerst ein fehler, dass es nicht senden
konnte..

Ähnliche fragen