我用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.Recordset
Private 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
uj5u.com熱心網友回復:
最簡單的方法是在SQL中給每個欄位一個別名,不就有列頭了。uj5u.com熱心網友回復:
略微復雜點的辦法是把表頭稱放在欄位的備注資訊里面, 然后通過讀取備注資訊來獲取.
不過好處是將來維護起來方便
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/106534.html
標籤:控件
上一篇:求代碼注釋,謝謝各位
