怎样将查询结果导出到Excel.docx
怎样将查询结果导出到Excel因为我是个菜鸟,所以我写的文章都是给那些刚入门的vb新手看的。呵呵,没什么深度。欢迎大家评论!如果你想将查询结果导出到Excel另存,以便日后查看或打印的话,那么我这里说的就是怎样将查询结果导出到Excel。先来写一个函数FillDataArray,该函数的主要作用是将查询语句中的字段名和查到的记录导入到Excel中。Public Function FillDataArray(asArray, adoRS As ADODB.Recordset) As Long'将数据送 Excel 函数Dim nRow As IntegerDim nCol As IntegerOn Error GoTo FillErrorReDim asArray(100000, adoRS.Fields.Count)nRow = 0For nCol = 0 To adoRS.Fields.Count - 1asArray(nRow, nCol) = adoRS.Fields(nCol).NameNext nColnRow = 1Do While Not adoRS.EOFFor nCol = 0 To adoRS.Fields.Count - 1asArray(nRow, nCol) = adoRS.Fields(nCol).ValueNext nColadoRS.MoveNextnRow = nRow + 1LoopnRow = nRow + 1FillDataArray = nRowExit FunctionFillError:MsgBox Error$Exit FunctionResumeEnd Function然后再来写一个过程PrintList,来调用前面的这个函数。Private Sub PrintListDim strSource, strDestination As StringDim asTempArrayDim INumRows As LongDim objExcel As Excel.ApplicationDim objRange As Excel.RangeOn Error GoTo ExcelErrorSet objExcel = New Excel.Application '新建一个ExcelDim rs As New ADODB.RecordsetSet rs = Conn.Execute(sqlall)sqlall是查询语句If Not rs.EOF ThenobjExcel.Workbooks.Open App.Path & "vvv.xls"MsgBox "查询结果导出后,请将其另存为一个.xls文件,使vvv.xls中的内容为空,确保后面查询结果的正确导出。"INumRows = FillDataArray(asTempArray, rs) '调填充数组函数objExcel.Cells(1, 1) = "查询结果" '填表头Set objRange = objExcel.Range(objExcel.Cells(2, 1), objExcel.Cells(INumRows, rs.Fields.Count)objRange.Value = asTempArray '填数据End IfobjExcel.Visible = True '显示ExcelobjExcel.DisplayAlerts = True '提示保存ExcelExit SubExcelError:If Err <> 432 And Err > 0 ThenMsgBox Error$Set objExcel = NothingExit SubElseResume NextEnd IfEnd Sub其中用到的vvv.xls必须是先建好了的xls文件。结果导出后不要直接保存,而要将其另存为一个.xls文件,使vvv.xls中的内容为空,确保后面查询结果的正确导出。