expertenaustausch > microsoft.* > microsoft.vb.datenbank

Lothar Geyer (17.04.2010, 14:38)
Wie kann ich einen hierarchischen Recordset nur mit ADO-Mitteln (also
ohne SQL) erzeugen?

Etwa so:

Set rs = New Recordset
rs.Fields.Append "Field1", dbInteger
rs.Fields.Append "Field2", dbInteger
rs.Fields.Append "Level2", dbChapter
With rs.Fields("Level2")
.Fields.Append "ABC"
....
End With

Aber das spielts ja nicht ...

Lothar Geyer
Wilfried Dietrich (19.04.2010, 12:27)
Hallo Lothar,

[..]
> .Fields.Append "ABC"
> ...
> End With


vielleicht so.

Set rsParent = New ADODB.Recordset
Set rsChild = New ADODB.Recordset

rsParent.CursorLocation = adUseClient
rsChild.CursorLocation = adUseClient

rsParent.Fields.Append "Field1", adInteger
rsParent.Fields.Append "Field2", adInteger
rsChild.Fields.Append "Level2", adIDispatch
rsChild.Fields.Append "Test", adVarChar, 20

rsParent.Open
rsChild.Open

rsChild.AddNew
rsChild(0) = "Datensatz1"
rsChild.Update
rsChild.AddNew
rsChild(0) = "Datensatz2"
rsChild.Update
rsChild.MoveFirst

rsParent.AddNew
rsParent(0) = 100
rsParent(1) = 101
rsParent(2) = rsChild
rsParent.Update
....
etc.

Gruß
Wilfried
Wilfried Dietrich (19.04.2010, 13:09)
Vor dem Senden habe ich es mehrfach gelesen, und doch.... :-o

Korrektur:

> ...
> rsParent.Fields.Append "Field2", adInteger
> rsChild.Fields.Append "Level2", adIDispatch
> rsChild.Fields.Append "Test", adVarChar, 20
> ...


Das muss natürlich wie folgt lauten:
....
rsParent.Fields.Append "Field2", adInteger
rsParent.Fields.Append "Level2", adIDispatch <<<<<
rsChild.Fields.Append "Test", adVarChar, 20
....

Gruß
Wilfried
Ähnliche Themen