ここから本文です

【Access 2002】txtデータをワイルドカードでインポートしたい

jia********さん

2010/12/718:13:06

【Access 2002】txtデータをワイルドカードでインポートしたい

10000_yymm_**_*_**.txt
10001_yymm_**_*_**.txt
10002_yymm_**_*_**.txt
(ファイル名の中身)
固定_年月_ランダムで変更_ランダムで変更_ランダムで変更.txt

といったようなテキスト名でつけられているデータを(18ファイル)一括でインポートしたいです。
はじめの5文字(10000など)は固定で、その後”_”で区切られている部分は、随時変更されます。

ワイルドカードでインポートしたいのですが、どういったマクロを組めばいいのかわかりません。

このコマンドを使用すればできるのかな。。。といったところでストップしてます。
DoCmd.TransferText acImportFixed, "インポート定義", "ImportTable", "***.txt"

どなたかお助け下さい。

宜しくお願いします。

閲覧数:
3,949
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

mi_********さん

2010/12/719:37:12

> はじめの5文字(10000など)は固定で、その後”_”で区切られている部分は、随時変更されます。

つまり、

10000_yymm_AA_A_AA.txt
10000_yymm_BB_B_BB.txt
10000_yymm_CC_C_CC.txt

のようなファイルがある、ということでしょうか。
アンダースコア(_)の数も固定ということなら


Sub SAMPLE_20101207()
Dim L1 As String
Dim FOLDER_NAME As String
Dim FILE_NAME As String

FOLDER_NAME = "Z:\WORKFOLDER\"
FILE_NAME = "10000_*_*_*_*.txt"

L1 = Dir(FOLDER_NAME & FILE_NAME)
Do Until L1 = ""
DoCmd.TransferText acImportFixed, "インポート定義", "ImportTable", FOLDER_NAME & L1
L1 = Dir
Loop
End Sub


でどうでしょうか。
解っているところははっきりと記述しておかないと、他の関係ないファイルまで拾ってしまう恐れがありますので…。
(ドライブ名とフォルダ名を FOLDER_NAME に入れていますので、適宜変更してください。)

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

jf_********さん

2010/12/718:27:18

格納されているフォルダ内のファイル名を取得し、取得したファイル名をインポートする

sub ImportProcess()

' パスを設定します。
Dim strPath = "フォルダ名\"
Dim strName = Dir(strPath, vbNormal)

Do While strName <> ""

DoCmd.TransferText acImportFixed, "インポート定義", "ImportTable", strPath & strName

Loop

End sub

的な感じでどうでしょうか?

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる