2017-01-16 5 views
0

私には何が欠けているのか分かりません。私はテーブル内のすべてのフィールドをループしています。データタイプが<>テキストの場合は、テキストに変更してください。いくつかのフィールドが数字として入力されていますが、.txtとしてエクスポートする前にテキストに変換する必要があります。フィールドに引用を追加することはできません。各フィールドには数字と文字のみを含める必要があります。すべてのフィールドをループし、データ型を変更します

私は次のように試して、各フィールドにdb.execute alter行を使用しましたが、実行時間3047を記録しています。どういうわけか各フィールドをチェックして、テキストに変更するのが最善であると仮定しています。

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

公正なポイント。これらの厄介なヌルフィールド –

関連する問題