程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> 用SQL語句對mdb表進行導出到Excel

用SQL語句對mdb表進行導出到Excel

編輯:關於Access數據庫
追加查詢
     Insert INTO [Excel 8.0;database=c:\a.xls].[sheet1$] Select * FROM Sm;
     這個追加是在指定表的最後一條記錄進行追加的,缺陷是一定要有列標題,而且列標題要與mdb表的字段名一致.假如有N個mdb數據要導出到一個excel,通常是先打開一個Excel,然後分別進行導出,過程中要加入usedrange或其他方法來判斷最後的行位置,而用這個語句就省去這個麻煩了.

     生成表查詢
     Select Sm.ID, Sm.字段1 INTO [Excel 8.0;database=c:\a.xls].[sheet2] FROM Sm;
     這裡的表名不需要加"$"附號,而且表名已有的話,會有提示.另外感覺這個sql語句的速度比tranferspreadsheet,OutPutTo的速度要快,而且可以指定生成工作表的名稱.與CopyFromRecordSet速度相當,但優點在於自動生成列標題,而CopyFromRecordSet不能.
     基於以上兩點理由,覺得應該用這個語句來代替以往所有的導出的方法.

     經准確測試,3.3萬條記錄,用sql語句與copyfromrecordset執行時間都是2秒,而tranferspreadsheet要4秒,outputto超出行數,報錯.
copyfromrecordset需要起碼7行代碼,而且沒有列標題,如果是用copyfromrecordset追加到指定的單元格,可以用追加查詢代替,如果是新表,就用生成表查詢代替. 

     至於刪除查詢,提示ISAM不支持.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved