2017-01-16 101 views
0

不確定我錯過了什麼。我試圖遍歷表中的所有字段,如果有任何數據類型爲文本,則將其更改爲文本。我們有一些字段作爲數字進入,但需要在導出爲.txt之前轉換爲文本。我無法在該字段中添加引號 - 每個字段只能包含數字和字母。遍歷所有字段並更改數據類型

我已經嘗試了以下操作,並且爲每個字段使用了db.execute改變行,但我收到了運行時間3047記錄大約第6個字段後太大的語法錯誤。我假設最好以某種方式循環檢查每個字段,只有在文本不存在的情況下才更改爲文本?

Dim table As DAO.TableDef 
Dim db As DAO.Database 
Set db = CurrentDb 

db.Execute "ALTER TABLE ImportFromExcel " _ 
     & "ALTER COLUMN RPT_SPLIT_ID CHAR;" 
+0

是因爲您需要導出到.txt文件而將非文本字段轉換爲文本的唯一原因?如果是這樣的話,我認爲這是完全沒有必要的。將數字25導出到文本文件時,您無法通過查看生成的文本文件知道原始數據的數據類型。 – Skippy

回答

0

最簡單的方法是在SELECT語句中將字段強制轉換爲字符串。使用CStr()函數可以將任何非文本字段強制轉換爲文本。如有可能,請始終嘗試使用健康的SQL查詢來收集數據,而不是循環訪問數據集。它在較小的表格中可能不會有明顯的差異,但它與大型記錄集有很大不同。試試這個:

SELECT CStr(field1), CStr(field2), CStr(field3) 
FROM ImportFromExcel 
+0

_whatever_有點過於寬泛,因爲'CStr'將失敗_Null_值。但是,'Ltrim(Str([field]))'不會。 – Gustav

+0

公平點。該死的那些麻煩的空領域 –