docmd.transferspreadsheet 是會以第一列(欄名之後的一列)為匯入的數據形態,
所以當你插入一列時, 它會以文字形態存放
所以你只能在EXCEL檔內去想辦法了, 只要把該欄數據形態定好了, 匯入是不會有問題的
至於EXCEL改格式方法太多了, 就不說
如果你還是在想是否能由ACCESS來主動更改匯入格式, 方法是有
但你要寫很多過程
就是以ODBC來連接EXCEL, 再用SQL來 SELECT INTO 表格
在SELECT INTO 中去動手腳:
如:
SELECT 欄名 as char(10), 數量 as int, CStr(備註) as char(10)
INTO newtable [IN externaldb]
FROM table1;
這方法就是用ODBC去向EXCEL查詢再插入到ACCESS內, 返回結果可以用CStr Cint等來更改格式
過程是要寫一大串的
陣列檔案名,建ODBC, 連接, 查詢, 插入, 關閉連線, 循環下一個檔案
如想要這樣做到時再問吧, 我還是建議你由EXCEL數據根源去把形態理好再匯入
至於數據規范化, 我是善意勸告, 因為我當初就是沒去想這一塊, 寫到後面很多問題產生,
不得不全部刪掉重新規划, 希望你別走錯路~
但你若覺得ACCESS只是幫存你單純存放單簡關係的資料, 哪你大可不必去深究了 |