我用SHAPE 做SQL查询后得到的返回数据,用MSHFlexGrid显示时,想设置列表头时,出现以下两种情况,请有没有高手帮忙解释一下,有没有办法解决。谢谢!
(1)是不是用SHAPE查询的结果,实际是两个表,不可以一起放入一个MSHFlexGrid中?
(2)出现下际超限是什么原因?
(3)我用字符串只对第一个查询时设置表头是可以的,但是超过第一个表,到第二个表时,就会出现空白行,再出现第二个表的列。为什么 ??
以上是不是主要原因出现在SQL的查询中。请高手多指教 。谢谢!‘代码如下
Option Explicit'  声明ADODB.Connection和ADODB.Recordset对象变量
Dim conn As ADODB.Connection
Dim rs As New ADODB.RecordsetPrivate Sub Command1_Click()
    Dim s As String
    Dim sql As String
    '  实例化Connection 对象
    Set conn = New ADODB.Connection
    '  设置连接提供者名称
    conn.Provider = "MSDataShape"
    '  设置连接字符串
    conn.ConnectionString = "Provider=MSDataShape;Data Source=D:\Personal\Desktop\SQL\例子\MSHFlexGrid VB 层次结构\Nwind.mdb; Data Provider=Microsoft.Jet.OLEDB.4.0"
    '  打开到数据源的连接
    conn.Open
    'shape指令
    sql = "SHAPE {SELECT distinct orderID FROM Orders} AS Orders " + _
    "APPEND ({SELECT * FROM [Order Details]}  AS detail " + _
    "RELATE 'OrderID' TO 'OrderID') AS detail"
    '  在分级 Recordset对象中当父行位置更改时,对基本子记录的引用是也更改。
    rs.StayInSync = True
    '  打开游标
    rs.Open sql, conn
    '  设置MSHFlexGrid控件数据源
    Set MSHFlexGrid1.DataSource = rs
    
    '    With MSHFlexGrid1
    '        .TextMatrix(0, 1) = "列表头1"
    '        .TextMatrix(0, 5) = "列表头5"        '出错
    '    End With
    
    
    s$ = "^  |^商品名称         |^规格      |^单位         |^数量           "  '会留有空行
    MSHFlexGrid1.FormatString = s$
    
    rs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing
    
    
End Sub