Вам необходимо создать иерархический набор записей , чтобы порт данных мог использовать его в качестве источника данных.
Прежде всего, вам нужно установить свойство ActiveConnection набора записей в MsDataShape:
rsDataSource.ActiveConnection = "Provider=MsDataShape;Data Provider=None;"
Вот пример того, как вы можете определить структуру набора записей:
rsDatasouce.Source = "SHAPE APPEND NEW adInteger As ParentId, " & _
"New adVarChar(100) As HeaderValue1, " & _
"New adVarChar(100) As HeaderValue2, " & _
"((SHAPE APPEND New adInteger As ParentGroupId, " & _
"New adInteger As ChildGroupId, " & _
"New adVarChar(25) As ChildValue1, " & _
"New adVarChar(25) As ChildValue2, " & _
"((SHAPE APPEND New adInteger As ChildId, " & _
"New adVarChar(8) As SubChildValue1, " & _
"New adVarChar(100) As Description " & _
"RELATE ChildGroupId To ChildId) AS ChildDetail) " & _
"RELATE ParentId To ParentGroupId) AS GroupDetail"
Сделав это, вам нужно заполнить иерархический набор записей.