• 締切済み

アクセス 複数のテキストファイルインポートについて

アクセス VBAについてです。 DoCmd.TransferTextで複数のテキストファイル(同一フォルダの中、上から順に全て)を取り込み、 テーブル名を一つ一つ順番につけていくことは可能でしょうか?? 例 フォルダダイアログを作ってそのフォルダを指定して フォルダ名をテキストボックスに表示、 その表示されてるフォルダの中身を 別のボタンを押せばインポートできるように、 テキストファイル A1 A2 A3 A4 インポート後のテーブル名 B1 B2 B3 B4 インポート時の定義は全て同一です。 わかりにくくてすみません、 知恵を貸してください

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1です。「インポート操作の保存」を用いる方法も調べてみました。入力、出力共に固定になってしまうので面倒です。ここでは、temp.csvというファイルをTempTableというテーブルにインポートする操作を保存して転用してみました。取り込むファイルをtemp.csvにコピーし、取り込んだTempTableの名前を付け替えと面倒なことになっています。もっと良い方法をご存じの方は教えて下さい。 Sub test2() Dim i As Long For i = 1 To 3 FileCopy GetDesktopPath & "\test" & CStr(i) & ".csv", "temp.csv" DoCmd.RunSavedImportExport "インポートtemp" DoCmd.Rename "Table" & CStr(i), acTable, "TempTable" Next i End Sub Private Function GetDesktopPath() As String Dim wScriptHost As Object, strInitDir As String Set wScriptHost = CreateObject("Wscript.Shell") GetDesktopPath = wScriptHost.SpecialFolders("Desktop") Set wScriptHost = Nothing End Function

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

可能でしょうか?? と訊かれれば、「やる気があれば可能です。」というのが答えです。 回答では無いのですがAccess2010で今更ながら?発見があったのでご披露しておきます。 下記コードは「インポート操作の保存」で保存した操作に対しては無効な様です。 インポートウィザードの途中で、旧バージョン同様設定ボタンをクリックして保存したインポート定義に対しては有効でした。 下記で、table1と、test1.csvのところをループを回しながら変更していけばお望みの事ができます。なお、GetDesktopPathはデスクトップのパスを求める自作(というか方々で親切な方が教えてくれている)関数です。 Sub test() DoCmd.TransferText acImportDelim, "import_test", "table1", GetDesktopPath & "\test1.csv" End Sub 下記のQAもご参考になるかもしれません。但しインポート定義は使用せず空になっています。 http://okwave.jp/qa/q8616853.html

hiko0626
質問者

お礼

返信ありがとうございます。 いろいろ参考にしながら頑張りたいと思います。 またよろしくお願いします。

関連するQ&A