1. 程式人生 > >機房-學生檢視上機記錄(功能實現)

機房-學生檢視上機記錄(功能實現)

出現的問題:
1.下機時間為null 不顯示本行資料
2.生成excel表格
3.將生成excel表格的程式碼新增到模組中,在窗體模組中進行呼叫時myFlexgrid出現未定義

解決方法:
1.使用了isnull()函式
程式碼如下:

	If IsNull(mrc.Fields(8)) Then
    	mrc.MoveNext
    Else
    	往表中填入資料
    	mrc.movenext
   end if

2.參考網路知識
程式碼如下:

 	Dim xlapp As Excel.Application          '宣告excel物件
    Dim xlbook As Excel.Workbook            '宣告工作簿物件
    Dim xlsheet As Excel.Worksheet          '宣告工作表
    
    Dim i As Long
    Dim j As Long
    
    Set xlapp = CreateObject("excel.application")        '建立應用程式
    Set xlbook = xlapp.Workbooks.Add                     '建立新的空白工作簿
    Set xlsheet = xlbook.Worksheets(1)                   '設定應用表
    
    xlapp.Rows(1).Font.Bold = True     '修改字型
     For i = 0 To frmInquiryLineRecord.myFlexgrid.Rows - 1        '通過迴圈來新增控制元件中的資料到Excel表中
        For j = 0 To frmInquiryLineRecord.myFlexgrid.Cols - 1    '由於第一行是表頭,所以新增資料從第二行開始。
            xlsheet.Cells(i + 1, j + 1) = "'" & frmInquiryLineRecord.myFlexgrid.TextMatrix(i, j)
        Next j
    Next i
    xlapp.Visible = True

3.在myFlexgrid前面加上窗體的名字就可以了

Public Sub export()
    Dim xlapp As Excel.Application          '宣告excel物件
    Dim xlbook As Excel.Workbook            '宣告工作簿物件
    Dim xlsheet As Excel.Worksheet          '宣告工作表
    
    Dim i As Long
    Dim j As Long
    
    Set xlapp = CreateObject("excel.application")        '建立應用程式
    Set xlbook = xlapp.Workbooks.Add                     '建立新的空白工作簿
    Set xlsheet = xlbook.Worksheets(1)                   '設定應用表
    
    xlapp.Rows(1).Font.Bold = True     '修改字型
     For i = 0 To frmInquiryLineRecord.myFlexgrid.Rows - 1        '通過迴圈來新增控制元件中的資料到Excel表中
        For j = 0 To frmInquiryLineRecord.myFlexgrid.Cols - 1    '由於第一行是表頭,所以新增資料從第二行開始。
            xlsheet.Cells(i + 1, j + 1) = "'" & frmInquiryLineRecord.myFlexgrid.TextMatrix(i, j)
        Next j
    Next i
    xlapp.Visible = True
End Sub

在呼叫的窗體寫下如下程式碼:

Private Sub cmdExport_Click()
  
   '匯出資料到excel表中
   Call export
End Sub