【VB版机房收费】MSFlexGrid控件

一、在机房中遇到的问题

问题一:

用msflexgrid控件的时候,设置click事件以达到查询的目的,并且将查询内容显示在控件中,需要删除上一次查询的内容,有两种方法。

第一种方法是,在第二次显示内容的时候先判断控件的第二行是否有内容,有的话则删除,用循环语句来判断,直到第二行(除了第一行的表头)没有内容为空的时候,再显示该显示的内容。

第二种方法是,在第二次显示的内容的时候,直接将内容显示在控件的第二行,将原内容覆盖。调用该函数即可。代码如下:

Public Sub viewData()
      txtSQL = "select * from User_Info where Level = '" & comboLevel.Text & " ' "
      Set mrc = ExecuteSQL(txtSQL, MsgText)
      With myflexgrid
             .Rows = 1 '直接从第二行开始显示
            .CellAlignment = 4
            '设置控件的第一行内容
            .TextMatrix(0, 0) = "用户名"
            .TextMatrix(0, 1) = "姓名"
            .TextMatrix(0, 2) = "开户人"
    
            Do While Not mrc.EOF
                .Rows = .Rows + 1
                .CellAlignment = 4
                .TextMatrix(.Rows - 1, 0) = mrc.Fields(0)
                .TextMatrix(.Rows - 1, 1) = mrc.Fields(3)
                .TextMatrix(.Rows - 1, 2) = mrc.Fields(4)
                mrc.MoveNext
            Loop
       End With
        mrc.Close
End Sub
问题二:

将MSFlexgrid控件中显示的数据导入Excel,首先要做好准备工作就是引用。

代码如下:

Dim xlapp As New Excel.Application '声明Excel对象
    Dim xlBook As Excel.workbook
Dim xlSheet As Excel.worksheet
Private Sub cmdExcel_Click()
'判断是否有记录可供导出
    If myflexgrid.Text = "" Then
        MsgBox "没有查询结果", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    Else
        Set xlBook = xlapp.workbooks.Add(1)
        Set xlSheet = Excel.activeworkbook.activesheet
        For i = o To myflexgrid.Rows - 1
            For j = 0 To myflexgrid.Cols - 1
                xlSheet.cells(i + 1, j + 1) = myflexgrid.TextMatrix(i, j)
            Next j
        Next i
        xlapp.Visible = True
    End If
End Sub

问题三

MSFlexGrid控件删除指定行

首先先选中行,即设置鼠标事件。

Private Sub myflexgrid_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
        nowrow = myflexgrid.MouseRow '选中行的行号赋给nowrow
End Sub
Private Sub myflexgrid_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
        txtNowrow.Text = myflexgrid.TextMatrix(nowrow, 0)  '将选中行的第一列数据(即用户名)赋给txtNowrow
End Sub
然后删除

Private Sub cmdDelete_Click()
'判断是否选中行
If nowrow = 0 Then
    MsgBox "没有选中卡号", vbOKOnly + vbExclamation, "警告"
    Exit Sub
End If
      txtSQL = "select * from User_Info where userid = '" & txtNowrow.Text & " ' "
      Set mrc = ExecuteSQL(txtSQL, MsgText)
      If (Trim(mrc.Fields(0)) = Trim(txtNowrow.Text)) Then
        MsgBox "用户已删除", vbOKOnly + vbExclamation, "警告"
            mrc.Delete
            mrc.Close
      Else
            mrc.MoveNext
    End If
End Sub


二、MSFlexgrid控件的常用属性和事件

1、属性

             row:单元格所在行

            col:单元格所在列

            textmatix:设置单元格内容

2、事件

           MouseDown / MouseUp事件
           Click事件
3、方法
          removeitem方法
          additem方法
          clear方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值