注册 登录
编程论坛 VB6论坛

Mshflexgrid控件显示数据时缺少表头?请教!

wangyiaihu 发布于 2020-04-30 10:20, 2593 次点击
只有本站会员才能查看附件,请 登录

Mshflexgrid控件显示数据时缺少表头?请教!
程序代码:
With MSHFlexGrid1
         
  '设置网格列表的最大行和列
.Rows = maxRows
.Cols = maxRows
  
'  .CellAlignment = flexAlignCenterCenter
  
  '将多余的列隐藏起来
  For i = maxRows - 1 To maxCols Step -1
    MSHFlexGrid1.ColWidth(i) = 0
  Next i
  '使该控件具有合并单元格的功能
  MSHFlexGrid1.MergeCells = flexMergeFree
   
  
  End With

 
    '  实例化Connection 对象
    Set conn11 = New ADODB.Connection
   
    '  设置连接提供者名称
    conn11.Provider = "MSDataShape"
   
    '  设置连接字符串
    conn11.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Aging.mdb "   '设置数据库路劲
    '  打开到数据源的连接
    conn11.Open
    'shape指令
    rs11.StayInSync = True
   
    '  打开游标
    rs11.Open "select * from 数据 '", conn11, 3, 2
   
    '  设置MSHFlexGrid控件数据源
    Set MSHFlexGrid1.DataSource = rs11
   
    MSHFlexGrid1.Refresh


 

 '判断结果
If rs11.RecordCount > 0 Then
   '-----------------------------------------
   '判断记录总数
   '-----------------------------------------
  Label7.Caption = rs11.RecordCount

End If
5 回复
#2
wangyiaihu2020-04-30 11:13
添加表头的代码,请教。
#3
ZHRXJR2020-05-02 11:06
程序代码:

Private Sub Form_Load()
    Set conn11 = New ADODB.Connection
    conn11.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Aging.mdb "
    conn11.Open
    Dim rs11 As New ADODB.Recordset
    rs11.StayInSync = True
    rs11.Open "select * from 数据 '", conn11, 3, 2
    KK = rs11.RecordCount
With MSHFlexGrid1

 .Rows = 1 + KK   '关键在这一句,你原来的行数只有 KK 行
.Cols = 12
   .ColWidth(0) = 0   '隐藏不需要的第一列,其他与 MSFlexGrid1 控件差不多。
  End With
    Set MSHFlexGrid1.DataSource = rs11
    MSHFlexGrid1.Refresh
  Label7.Caption = KK
End Sub

只有本站会员才能查看附件,请 登录
#4
wangyiaihu2020-05-02 18:09
回复 3楼 ZHRXJR
#5
wangyiaihu2020-05-02 18:29
回复 3楼 ZHRXJR
你的答案永远都是让我完美解决问题,
而且能够消化看明白,谢谢。
#6
wj7172021-02-03 09:55
回复 3楼 ZHRXJR
版主大神,求指教,我在控件mshfgrid中做自由分组时,合并后的结果是
只有本站会员才能查看附件,请 登录




这样的,而没有得到我想要的
只有本站会员才能查看附件,请 登录




结果,有没有哪位大神出来指教下,万分感谢路过的大神!!!!

我的代码如下:

'设置表格格式

Dim MSHFGrid

'设置表格格式

Set MSHFGrid = ScreenItems("MSHFGrid1")

' MSHFGrid.Visible=0

' MSHFGrid.Clear

MSHFGrid.Cols = 6

MSHFGrid.Rows = 6

MSHFGrid.ColWidth(0)=0

MSHFGrid.RowHeight(0)=0

MSHFGrid.RowHeight(1) = 300

MSHFGrid.RowHeight(2) = 300

MSHFGrid.RowHeight(3) = 300

MSHFGrid.RowHeight(4) = 300

MSHFGrid.RowHeight(5) = 300

MSHFGrid.ColAlignment=4

'设置标题

MSHFGrid.TextMatrix(1,1)="序号"

MSHFGrid.TextMatrix(1,2)="时间"

MSHFGrid.TextMatrix(1,3)="地点"

MSHFGrid.TextMatrix(1,4)="人物"

MSHFGrid.TextMatrix(1,5)="细节"

MSHFGrid.ColWidth(1)=500

MSHFGrid.ColWidth(2)=2000

MSHFGrid.ColWidth(3)=1100

MSHFGrid.ColWidth(4)=1000

MSHFGrid.ColWidth(5)=1000

MSHFGrid.MergeCells=1

MSHFGrid.MergeRow(2)=True

MSHFGrid.MergeRow(3)=True

MSHFGrid.MergeRow(4)=True

MSHFGrid.MergeRow(5)=True

MSHFGrid.MergeCol(2)=True

MSHFGrid.MergeCol(3)=True

MSHFGrid.MergeCol(4)=True

MSHFGrid.MergeCol(5)=True

Dim c1,c2

For c1=2 To 5

 for c2=2 To 5

MSHFGrid.TextMatrix(c1,c2)="I Don't know"

 Next

Next



MSHFGrid.Visible=1
1