Private Sub MSFGrid_dsj_Init()
'初始化
Dim i As Integer
conn.ConnectionString = strconn
conn.Open
rs.Open "select * from 表名 ", conn, adOpenKeyset, adLockOptimistic
If rs.RecordCount > 0 Then
MSFGrid_dsj.Rows = rs.RecordCount + 1
MSFGrid_dsj.Cols = 3
MSFGrid_dsj.TextMatrix(0, 0) = "序号"
MSFGrid_dsj.TextMatrix(0, 1) = "显示字段名1"
MSFGrid_dsj.TextMatrix(0, 2) = "显示字段名2"
For i = 1 To rs.RecordCount
MSFGrid_dsj.TextMatrix(i, 0) = i
MSFGrid_dsj.TextMatrix(i, 1) = rs.Fields("字段1")
MSFGrid_dsj.TextMatrix(i, 2) = rs.Fields("字段2")
rs.MoveNext
Next i
Else
MSFGrid_dsj.Rows = 1
MSFGrid_dsj.Cols = 3
MSFGrid_dsj.TextMatrix(0, 0) = "序号"
MSFGrid_dsj.TextMatrix(0, 1) = "显示字段名1"
MSFGrid_dsj.TextMatrix(0, 2) = "显示字段名2"
End If
rs.Close
conn.Close
'调用自动调整列宽函数
Call AdjustColWidth(Frm_index, MSFGrid_dsj, True, 0)
End Sub
Public Sub AdjustColWidth(frmCur As Form, gridCur As Object, Optional bNullRow As Boolean = True, Optional dblIncWidth As Double = 0)
'--------------------------------------------------------------------
'功能:
' 自动调整Grid各列列宽为最合适的宽度
'参数:
' [frmCur].........................................当前工作窗体
' [gridCur]........................................当前要调整的Grid
'--------------------------------------------------------------------
Dim i, j As Integer
Dim dblWidth As Double
With gridCur
For i = 0 To .Cols - 1
dblWidth = 0
If .ColWidth(i) <> 0 Then
For j = 0 To .Rows - 1
If frmCur.TextWidth(.TextMatrix(j, i)) > dblWidth Then
dblWidth = frmCur.TextWidth(.TextMatrix(j, i))
End If
Next
.ColWidth(i) = dblWidth + dblIncWidth + 100
End If
Next
End With
End Sub