2017-09-15 7 views
2

VBA DoCmd.TransferTextコマンドを使用して、CSVテキストファイルからAccessデータベース内の新しいテーブルにデータをインポートしています。私はいくつかのファイルの最初の3つの列にあるテキストデータを通貨としてインポートする問題にぶつかってきました。私は何が起こっているのか理解できません。TransferTextが通貨として "FS ###"のような文字列を間違ってインポートします。

Hereは1つの(VollintineLines.csv)正しくインポートCSV ...

PipeID,UpstreamMH,DownstreamMH,Diameter,GISLength,Status 
WS010353S,WS010353,WS010163,36,227.1984614,Fully Surveyed as Phase Work 
WS011155S,WS011155,WS011154,8,418.5435318,Not Surveyed 
WS011154S,WS011154,WS011153,8,303.9618911,Fully Surveyed as Phase Work 

...と(CourtLines.csv)しないものと一緒にテストデータベースです。

PipeID,UpstreamMH,DownstreamMH,Diameter,GISLength,Status 
FS020628S,FS020628,FS020462,10,278.72,Not Surveyed 
FS020463S-1,FS020463,FS020462,12,248.39,Not Surveyed 
FS020216S,FS020216,FS020215,12,227.53,Fully Surveyed as Phase Work 

(データベース内の無名のオブジェクトを無視してください、それだけでここで起こっているかを把握することだったと私は物事を命名気にしませんでした。)

ここにあなたが持っている、輸入コードですMicrosoft Office 16.0 Object Library Referenceを有効にします。

Private Sub Command0_Click() 
Dim Path As FileDialog 
Dim FileName As Variant 
DoCmd.SetWarnings False 
DoCmd.Hourglass True 
Set Path = Application.FileDialog(msoFileDialogFilePicker) 

    With Path 
    .AllowMultiSelect = False 
    .Title = "Select your File" 
    .Filters.Add "All Files", "*.*" 
    If .Show = -1 Then 

     For Each FileName In .SelectedItems 
     DoCmd.TransferText acImportDelim, , "TempPipeData", FileName, True 
     Next FileName 

    Else 
     MsgBox "No File Selected to Import." 
    End If 

    End With 
DoCmd.SetWarnings True 
DoCmd.Hourglass False 

End Sub 
+0

テストデータベースのZIPファイルに、Accessデータベースのファイル名がありません。 –

+0

これは修正されました。申し訳ありません! –

答えて

0

あなたは明らかにインポート定義を使用していないTransferText通話に影響を与えることはなく、あいまいなバグに遭遇しました。 (また別のサイトhereで議論されている。)

回避策は、次のとおりthis answerに記載されているように

  1. インポート仕様を使用します。
  2. 最初にテーブルを作成し、目的の列タイプ(この場合はText)を指定してから、CSVファイルから既存の(空の)テーブルにインポートします。上記のオプションのどちらが望ましい場合
  3. は、あなたは、
  4. 、ExcelはCSVファイルを開いて保存
  5. を持っているXLSまたはXLSXに、
    • 打ち上げExcelのインスタンスにCOMオートメーションを使用することができます
    • Access VBAでTransferSpreadsheetを使用してExcelデータをインポートする場合は、
    • 一時XLS [X]ファイルを削除します。
+0

ありがとうございました。#2に行って、削除後にインポート後にテーブルをクリアするだけでした。 また、オリジナルの投稿を編集して、わかりやすくしていただきありがとうございます。 –

関連する問題