追加查詢
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不支持.