激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

香港云服务器
服務器之家 - 腳本之家 - VBA - 用vba實現將記錄集輸出到Excel模板

用vba實現將記錄集輸出到Excel模板

2020-05-29 13:54VBA教程網 VBA

本文主要講解用vba實現將記錄集輸出到Excel模板的方法,有需要的朋友可以參考一下。

復制代碼 代碼如下:


'************************************************ 
'** 函數名稱:  ExportTempletToExcel 
'** 函數功能:  將記錄集輸出到 Excel 模板 
'** 參數說明: 
'**            strExcelFile         要保存的 Excel 文件 
'**            strSQL               查詢語句,就是要導出哪些內容 
'**            strSheetName         工作表名稱 
'**            adoConn              已經打開的數據庫連接 
'** 函數返回: 
'**            Boolean 類型 
'**            True                 成功導出模板 
'**            False                失敗 
'** 參考實例: 
'**            Call ExportTempletToExcel(c:\\text.xls,查詢語句,工作表1,adoConn) 
'************************************************ 
Private Function ExportTempletToExcel(ByVal strExcelFile As String, _ 
                                      ByVal strSQL As String, _ 
                                      ByVal strSheetName As String, _ 
                                      ByVal adoConn As Object) As Boolean 
   Dim adoRt                        As Object 
   Dim lngRecordCount               As Long                       ' 記錄數 
   Dim intFieldCount                As Integer                    ' 字段數 
   Dim strFields                    As String                     ' 所有字段名 
   Dim i                            As Integer 

   Dim exlApplication               As Object                     ' Excel 實例 
   Dim exlBook                      As Object                     ' Excel 工作區 
   Dim exlSheet                     As Object                     ' Excel 當前要操作的工作表 

   On Error GoTo LocalErr 

   Me.MousePointer = vbHourglass 

   '// 創建 ADO 記錄集對象 
   Set adoRt = CreateObject(ADODB.Recordset) 

   With adoRt 
      .ActiveConnection = adoConn 
      .CursorLocation = 3           'adUseClient 
      .CursorType = 3               'adOpenStatic 
      .LockType = 1                 'adLockReadOnly 
      .Source = strSQL 
      .Open 

      If .EOF And .BOF Then 
         ExportTempletToExcel = False 
      Else 
         '// 取得記錄總數,+ 1 是表示還有一行字段名名稱信息 
         lngRecordCount = .RecordCount + 1 
         intFieldCount = .Fields.Count - 1 

         For i = 0 To intFieldCount 
            '// 生成字段名信息(vbTab 在 Excel 里表示每個單元格之間的間隔) 
            strFields = strFields & .Fields(i).Name & vbTab 
         Next 

         '// 去掉最后一個 vbTab 制表符 
         strFields = Left$(strFields, Len(strFields) - Len(vbTab)) 

         '// 創建Excel實例 
         Set exlApplication = CreateObject(Excel.Application) 
         '// 增加一個工作區 
         Set exlBook = exlApplication.Workbooks.Add 
         '// 設置當前工作區為第一個工作表(默認會有3個) 
         Set exlSheet = exlBook.Worksheets(1) 
         '// 將第一個工作表改成指定的名稱 
         exlSheet.Name = strSheetName 

         '// 清除“剪切板” 
         Clipboard.Clear 
         '// 將字段名稱復制到“剪切板” 
         Clipboard.SetText strFields 
         '// 選中A1單元格 
         exlSheet.Range(A1).Select 
         '// 粘貼字段名稱 
         exlSheet.Paste 

         '// 從A2開始復制記錄集 
         exlSheet.Range(A2).CopyFromRecordset adoRt 
         '// 增加一個命名范圍,作用是在導入時所需的范圍 
         exlApplication.Names.Add strSheetName, = & strSheetName & !$A$1:$ & _ 
                                  uGetColName(intFieldCount + 1) & $ & lngRecordCount 
         '// 保存 Excel 文件 
         exlBook.SaveAs strExcelFile 
         '// 退出 Excel 實例 
         exlApplication.Quit 

         ExportTempletToExcel = True 
      End If 
      'adStateOpen = 1 
      If .State = 1 Then 
         .Close 
      End If 
   End With 

LocalErr: 
   '********************************************* 
   '** 釋放所有對象 
   '********************************************* 
   Set exlSheet = Nothing 
   Set exlBook = Nothing 
   Set exlApplication = Nothing 
   Set adoRt = Nothing 
   '********************************************* 

   If Err.Number <> 0 Then 
      Err.Clear 
   End If 

   Me.MousePointer = vbDefault 
End Function 

'// 取得列名 
Private Function uGetColName(ByVal intNum As Integer) As String 
   Dim strColNames                  As String 
   Dim strReturn                    As String 

   '// 通常字段數不會太多,所以到 26*3 目前已經夠了。 
   strColNames = A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z, & _ 
                 AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ, & _ 
                 BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ 
   strReturn = Split(strColNames, ,)(intNum - 1) 
   uGetColName = strReturn 
End Function 

 

延伸 · 閱讀

精彩推薦
1288
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 黄色va视频 | 噜噜色av | 国产超碰人人做人人爱 | 亚洲不卡| 亚洲一区二区三区高清视频 | 成人偷拍片视频在线观看 | 国产在线欧美日韩 | 老女人碰碰在线碰碰视频 | 日韩在线观看视频一区 | 精品亚洲综合 | 国产精品一区二区三区在线看 | 精品一区二区三区欧美 | 一区二区三区在线播放视频 | 天天躁狠狠躁夜躁2020挡不住 | 久久www视频 | 国产精品二区高清在线 | 激情视频在线播放 | 免费观看三级毛片 | 欧美日韩1区2区 | 免费91在线 | 免费a级毛片永久免费 | 国产超碰人人做人人爱ⅴa 国产精品久久久久久久hd | 成人毛片免费看 | 久久久无码精品亚洲日韩按摩 | 中国国语毛片免费观看视频 | 久久草草影视免费网 | 日韩欧美动作影片 | 高清在线观看av | 成人在线视频免费观看 | 亚洲精品一区二区三区在线看 | 久久福利在线 | 黄色毛片免费看 | 欧美女优一区 | 被啪羞羞视频在线观看 | 免费观看一区 | 亚洲国产视频网 | 欧美成人国产va精品日本一级 | 视频在线色 | 久久蜜臀一区二区三区av | wwwcom国产| 欧美一区中文字幕 |