机房收费系统之学生查看上机记录

在做学生查看上机记录窗体时,遇到了两个比较棘手的问题,不过还是解决了!!!

First:如何将msflexgrid中的记录导出到excel中

如下:

Private Sub cmdexcel_click()

Rem:定义控件的行值
Dim i As Integer

Rem:定义控制的列值
Dim j As Integer


Rem:定义excel程序
Dim xlApp As Excel.Application

Rem:定义工作簿
Dim xlBook As Excel.Workbook

Rem:定义工作表
Dim xlSheet As Excel.Worksheet

Rem:判断是否有记录可供导出
If MSFlexGrid1.Text = "" Then
            MsgBox "无记录可导出!", vbOKOnly + vbInformation, "温馨提示"
            Exit Sub
Else
            Rem:对象实例化
            Set xlApp = CreateObject("Excel.Application")
            xlApp.Visible = True
            
            Rem:不断实例化工作簿,add在这里起不断新建工作簿的作用
            Set xlBook = xlApp.Workbooks.Add
            
            Rem:实例化工作表
            Set xlSheet = xlBook.Worksheets(1)
            
            
            Rem:将msflexgrid中的记录导入到excel中
            
            For i = 0 To MSFlexGrid1.Rows - 1
                 For j = 0 To MSFlexGrid1.Cols - 1
                     MSFlexGrid1.Row = i
                     MSFlexGrid1.Col = j
                     
                     xlSheet.Cells(i + 1, j + 1) = Trim(MSFlexGrid1.Text)
                     
                 Next
            Next
End If
            
            
End Sub

我们来看下里面的代码:

第一:Set xlApp = CreateObject("Excel.Application")

           解释:这句话的意思是创建一个excel

第二:Set xlBook = xlApp.Workbooks.Add

           解释:不断的新建工作簿,其意为可以打开多个工作簿

第三:Set xlSheet = xlBook.Worksheets(1)

           解释:括号中的数字可以对应打开哪个工作表

Second:msflexgrid控件中表格宽度的设置:

此控件中想让它加载的出来的数据刚好能够不被表格覆盖,可以用以下代码:

扫描二维码关注公众号,回复: 4125421 查看本文章
Rem:定义msflexgrid的自动列宽
Public Sub adjustcolwidth(frmcur As Form, gridcur As Object, Optional bnullrow As Boolean = True, Optional dbllncwidth As Double = 0)
        
Rem:定义列数和函数的代表值
Dim i, j As Integer

Rem:定义宽度

Dim dblwidth As Double
        
        
        With gridcur
        
            For i = 0 To .Cols - 1
                dblwidth = 0
                If .ColWidth(0) <> 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 + dbllncwidth + 1899
                End If
            Next
        End With
        
End Sub

注释:frmcur所对应的是窗体的名称,而grid所对应的是msflexgrid控件的名称





这段代码可以加在公共模块中,然后再调用它即可。

如何调用:

Call adjustcolwidth(frmusercomputer, MSFlexGrid1, True, 0)

猜你喜欢

转载自blog.csdn.net/yang18831636208/article/details/82901726