当前位置:编程学习 > VB >>

表格控件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 楼 jhone99 的回复:
Show Title
Show Data
***************
ShowTitle
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 ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,