表格控件MSHFlexgrid,为什么不显示库里的信息?
表格控件放在frmManrecord1窗体,代码是:
Private Sub frmManrecord1_load()
Show Title
Show Data
flagEdit = True
End Sub
Public Sub showtitle()
Dim i As Integer
With msgList
.Cols = 21
.TextMatrix(0, 1) = "编号"
.TextMatrix(0, 2) = "姓名"
.TextMatrix(0, 3) = "部门"
.TextMatrix(0, 4) = "性别"
.TextMatrix(0, 5) = "出生日期"
.TextMatrix(0, 6) = "籍贯"
.TextMatrix(0, 7) = "学历"
.TextMatrix(0, 8) = "专业"
.TextMatrix(0, 9) = "参加工作时间"
.TextMatrix(0, 10) = "入党时间"
.TextMatrix(0, 11) = "职称"
.TextMatrix(0, 12) = "职称时间"
.TextMatrix(0, 13) = "原身份"
.TextMatrix(0, 14) = "原工作单位"
.TextMatrix(0, 15) = "原职务"
.TextMatrix(0, 16) = "进入公司时间"
.TextMatrix(0, 17) = "起薪时间"
.TextMatrix(0, 18) = "调入时间"
.TextMatrix(0, 19) = "档号"
.TextMatrix(0, 20) = "备注"
.FixedRows = 1
For i = 0 To 20
.ColAlignment(i) = 0
Next i
.FillStyle = flexFillRepeat
.Col = 0
.Row = 0
.RowSel = 1
.ColSel = .Cols - 1
.ColAlignment = 4
.ColWidth(0) = 300
.ColWidth(1) = 1000
.ColWidth(2) = 1000
.ColWidth(3) = 1000
.ColWidth(4) = 600
.ColWidth(5) = 1000
.ColWidth(6) = 2000
.ColWidth(7) = 1000
.ColWidth(8) = 2000
.ColWidth(9) = 1200
.ColWidth(10) = 1000
.ColWidth(11) = 1200
.ColWidth(12) = 1000
.ColWidth(13) = 1200
.ColWidth(14) = 3000
.ColWidth(15) = 1000
.ColWidth(16) = 1200
.ColWidth(17) = 1000
.ColWidth(18) = 1000
.ColWidth(19) = 1000
.ColWidth(20) = 1000
.Row = 1
End With
End Sub
Public Sub ShowData()
Dim j As Integer
Dim i As Integer
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = False Then
With msgList
.Rows = 1
Do While Not mrc.EOF
.Rows = .Rows + 1
For i = 1 To mrc.Fields.Count
Select Case mrc.Fields(i - 1).Type
Case adDDBate
.TextMatrix(.Rows - 1, i) = Format(mrc.Fields(i - 1) & "", "yyyy-mm-dd")
Case Else
.TextMatrix(.Rows - 1, i) = mrc.Fields(i - 1) & ""
End Select
Next i
mrc.MoveNext
Loop
End With
End If
mrc.Close
End Sub --------------------编程问答-------------------- Show Title
Show Data
***************
ShowTitle
ShowData
不要分开
--------------------编程问答-------------------- 应该
call ShowTitle
call ShowData
************
这是调用你下面的两个过程 --------------------编程问答-------------------- +1 --------------------编程问答-------------------- 恩,改正过来了,可是数据库里的员工信息还是不能显示在表格里…… --------------------编程问答-------------------- txtSQL 什么?textbox?
应该在这个里写入sql --------------------编程问答-------------------- Set mrc = ExecuteSQL(txtSQL, MsgText)这里面的txtSQL串没有赋值?
--------------------编程问答-------------------- 我在公用模块里写过ExecuteSQL的,运行的时候我怎么觉得公用模块里的函数都不能公用的……
公用模块里是这样的:
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
'On Error GoTo ExecuteSQL_Error
sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
cnn.Execute SQL
MsgString = sTokens(0) & "query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & "条记录"
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误:" & Err.Description
Resume ExecuteSQL_Exit
End Function --------------------编程问答-------------------- Set mrc = ExecuteSQL(txtSQL, MsgText)
这个txtSQL需要有值,就是sql语句
--------------------编程问答-------------------- ...... --------------------编程问答-------------------- txtSQL = "select * from manrecord"
Set mrc = ExecuteSQL(txtSQL, MsgText)
这样也不行(⊙o⊙)?
--------------------编程问答-------------------- help……/upload/2013122122/20080711112213876.gif --------------------编程问答--------------------
补充:VB , 基础类