Считываю данные из базы которая выглядит вот так:
- Код: Выделить всё
AutoID Datenbank Benutzer SPID Methode Befehl Befehl1
1 SDE_LOKAL SAO SPID57 BLReceipt MakeDeliveryFromOrder Init (Transaction handling:=COM+, Transaction:=On, Timeout:=32767)
2 SDE_LOKAL SAO SPID57 BLReceipt MakeDeliveryFromOrder Init "(DB:=Microsoft SQLServer, Shaping:=Off, ConnectionString:=""""(Provider=MSDataShape.1;Data )Provider=SQLOLEDB.1;Data Source=(local);Initial Catalog=SDE_Lokal;Auto Translate=False;Persist Security Info=True;OLE DB Services=-2;User ID=SAO;Password=***"""")"
3 SDE_LOKAL SAO SPID57 BLReceipt MakeDeliveryFromOrder GetRecordSet (Mode:=ReadOnly, Location:=Client)
4 SDE_LOKAL SAO SPID57 BLReceipt MakeDeliveryFromOrder GetRecordSet "(Statement:=""SELECT @@SPID"")"
5 SDE_LOKAL SAO SPID57 BLReceipt MakeDeliveryFromOrder GetRecordSet "(Converted:=""SELECT @@SPID"")"
6 SDE_LOKAL SAO SPID57 BLReceipt MakeDeliveryFromOrder GetRecordSet (Time to select data:= 0,63 ms)
Реализовано это у меня вот так:
- Код: Выделить всё
Sub CreateTreeDatenbank()
Dim NodX As Node
Dim strKey As String
Dim mKey As String
Dim intKey As Integer
intKey = 1
strSQL = "SELECT * FROM TraceFiles"
Set RecDB = New ADODB.Recordset
RecDB.Open strSQL, ConDB, adOpenStatic, adLockOptimistic
TreeView1.LineStyle = tvwRootLines
TreeView1.Nodes.Clear
If RecDB.EOF Then Exit Sub
Do While Not RecDB.EOF
mKey = str(intKey) & str(RecDB.Fields("AutoID"))
Set NodX = TreeView1.Nodes.Add(, , mKey, RecDB.Fields("Datenbank"), 1)
Set NodX = TreeView1.Nodes.Add(mKey, tvwChild, mKey & 1, RecDB.Fields("Benutzer"), 2)
Set NodX = TreeView1.Nodes.Add(mKey & 1, tvwChild, mKey & 2, RecDB.Fields("SPID"), 3)
Set NodX = TreeView1.Nodes.Add(mKey & 2, tvwChild, , RecDB.Fields("Methode"), 4)
RecDB.MoveNext
intKey = intKey + 1
Loop
RecDB.Close
Set RecDB = Nothing
End Sub
И получается такое дерево:
Вопрос - как можно сгруппировать элементы? Пробовал через sql SELECT DISTINCT, но ступор на группировке второй колонки таблицы. Надеюсь на помощь, спасибо.