构建层次记录集

适用于:Access 2013、Office 2013

下面的示例演示如何通过使用 Data Shaping 语法来定义父级、子级和孙级 Recordset 的列,从而构建没有基础数据源的分层 Recordset。

若要构建分层 Recordset ,必须指定 Microsoft Data Shaping Service for OLE DB (MSDataShape),而且可以将 Connection 对象的 Open 方法的连接字符串参数的 Data Provider 值指定为 NONE。 有关详细信息,请参阅 数据定形必需的提供程序

    Dim cn As New ADODB.Connection
    Dim rsCustomers As New ADODB.Recordset
    
    cn.Open "Provider=MSDataShape;Data Provider=NONE;"
     
    strShape = _
    "SHAPE APPEND NEW adInteger AS CustID," & _
                " NEW adChar(25) AS FirstName," & _
                " NEW adChar(25) AS LastName," & _
                " NEW adChar(12) AS SSN," & _
                " NEW adChar(50) AS Address," & _
             " ((SHAPE APPEND NEW adChar(80) AS VIN_NO," & _
                            " NEW adInteger AS CustID," & _
                            " NEW adChar(20) AS BodyColor, " & _
                         " ((SHAPE APPEND NEW adChar(80) AS VIN_NO," & _
                                        " NEW adChar(20) AS Make, " & _
                                        " NEW adChar(20) AS Model," & _
                                        " NEW adChar(4) AS Year) " & _
                            " AS VINS RELATE VIN_NO TO VIN_NO))" & _
                " AS Vehicles RELATE CustID TO CustID) "
     
    rsCustomers.Open strShape, cn, adOpenStatic, adLockOptimistic, -1

在构造 Recordset 后,可以将其填充、操作或保存到文件中。