Hallo BlackDaishi,
ich habe mal deine Liste (Tabelle Punkteverlauf) etwas "unsortiert":[list]
Bez vonPunkt nachPunkt
WEG1 LH114-001 LH114-002
WEG1 LH114-002 LH114-003
WEG1 LH114-003 LH114-007
WEG1 LH114-007 LH114-006
WEG2 LH114-003 LH114-007
WEG2 LH114-007 LH114-006
WEG2 LH114-006 LH114-030
WEG2 LH114-030 LH114-031
WEG1 LH114-006 LH114-030
WEG1 LH114-030 LH114-031
WEG2 LH114-002 LH114-003
WEG2 LH114-001 LH114-002[/list] und darauf die Prozedure "sortPunktverlauf" angewandt. Sie schreibt die Tabelle sortiert in die neue Tabelle "punktverlauf_sort" (gleiche Struktur)
Dein "stich"-Problem läßt sich da integrieren, probiere es selbst mal aus. Die Wege sollten "wohlgeformt" sein, also keine Wege die zusammenführen, sonst kommt mehr heraus, als man rein steckt!
Public Sub sortPunktverlauf()
Dim reca As New ADODB.Recordset
Dim rec1 As New ADODB.Recordset
Dim rec2 As New ADODB.Recordset
Dim bez As String
Dim p1 As String
DoCmd.RunSQL "DELETE * FROM punktverlauf_sort"
reca.Open "SELECT * FROM Punktverlauf WHERE vonPunkt Not In (SELECT nachpunkt from Punktverlauf)", CurrentProject.Connection, adOpenStatic, adLockReadOnly
rec1.Open "SELECT * FROM Punktverlauf", CurrentProject.Connection, adOpenDynamic, adLockReadOnly
rec2.Open "SELECT * FROM Punktverlauf_sort", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
If Not reca.EOF Then
While Not reca.EOF
p1 = reca!nachPunkt
bez = reca!bez
rec2.AddNew
rec2!bez = bez
rec2!vonpunkt = reca!vonpunkt
rec2!nachPunkt = reca!nachPunkt
rec2.Update
While p1 <> ""
rec1.Filter = "vonPunkt = '" & p1 & "' and bez = '" & bez & "'"
If rec1.EOF Then
p1 = ""
Else
rec2.AddNew
rec2!bez = bez
rec2!vonpunkt = rec1!vonpunkt
rec2!nachPunkt = rec1!nachPunkt
rec2.Update
p1 = rec1!nachPunkt
End If
Wend
reca.MoveNext
Wend
End If
reca.Close
rec1.Close
rec2.Close
End Sub
Mein Ergebnis sieht so aus:
[list]Bez vonPunkt nachPunkt
WEG1 LH114-001 LH114-002
WEG1 LH114-002 LH114-003
WEG1 LH114-003 LH114-007
WEG1 LH114-007 LH114-006
WEG1 LH114-006 LH114-030
WEG1 LH114-030 LH114-031
WEG2 LH114-001 LH114-002
WEG2 LH114-002 LH114-003
WEG2 LH114-003 LH114-007
WEG2 LH114-007 LH114-006
WEG2 LH114-006 LH114-030
WEG2 LH114-030 LH114-031[/list]
Gruß
Ralf