ここから本文です

【ACCESS】VBAでテーブルにテキストファイルデータをインポートする方法について

アバター

ID非公開さん

2020/2/1203:38:09

【ACCESS】VBAでテーブルにテキストファイルデータをインポートする方法について

ACCESSのテーブルに共有フォルダにあるテキストファイルデータをインポートする処理をマクロ化したいのですが、どのようにしたらよいかご教示ください。。。

インポートする条件は、テーブルの先頭行はフィールドとして使わず、フィールド区切り記号「タブ」、テキスト区切り記号「なし」、主キー設定はなしです。

インポートするテキストファイル名は日付が変わるため、マクロではフォルダを開き、インポートするテキストファイルを毎回選択するように手順を追っていきたいとイメージしております。

どうかよろしくお願いいたします。

閲覧数:
19
回答数:
2
お礼:
100枚

違反報告

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

iru********さん

2020/2/1220:08:15

注)エクセルと違って、アクセスにおいては
「VBA」と「マクロ」は全く別の言語です。

1)「メニュー」「外部データ」「新しいデータソース」
「ファイルから」「テキストファイル」
「ファイル名」「参照」
「現在のデータベースの新しいテーブルにソースデータをインポートする」
「OK」
「区切り記号付き」「次へ」
「フィールド区切り記号:タブ」「次へ」
「フィールドのオプション:いろいろ設定」「次へ」
「主キーを設定しない」「次へ」
「インポート先のテーブル:任意の名前」「設定」
「保存」「定義名:任意の名前」← (その名前をメモしておきましょう)
「OK」「OK」
で、インポート定義を作ります。

フォームのボタンクリックでインポートします。
VBA
'インポートする
Private Sub コマンド10_Click()
If Len(Dir(Me!FullName.Value)) = 0 Then Exit Sub
With CurrentProject.Connection
.Execute "DELETE FROM prime10;"
End With
DoCmd.TransferText acImportDelim, "prime10 インポート定義" _
, "prime10", Me!FullName.Value, HasFieldNames:=False
End Sub

'インポートファイルの選択
Private Sub コマンド4_Click()
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = CurrentProject.Path & "\"
.Title = "インポートするファイル"
If .Show Then
Me!FullName.Value = .SelectedItems(1)
End If
End With
End Sub

アバター

質問した人からのコメント

2020/2/13 08:33:16

教えていただきありがとうございます!

書いていただいたコードを一度解釈し、使わせていただきたいと思います!

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

1〜1件/1件中

プロフィール画像

カテゴリマスター

ony********さん

2020/2/1217:23:26

>インポートするテキストファイル名は日付が変わるため

この部分の為、マクロでの処理はできません。
マクロをVBA記述にしたものを使うことになります。

>テキストファイルを毎回選択

上記の仕組みも苦労する割には、効率的ではありません。

私なら、
①「インポートするフォルダ」と「インポート済み」のフォルダを用意し、
②「インポートするフォルダ」に対象のテキストファイルを格納し、
③取り込みボタンのクリック時イベントで、「インポートするフォルダ」内のテキストファイル名を取得して、インポートする
④インポートが終わったら、「インポート済み」フォルダにファイルを移動する。
という感じで作ります。

インポートするフォルダに複数のファイルがある状態でも、一度に全部インポートしたり、最新のみインポートしたりも記述次第でできます。(どちらでしょうか?)

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

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

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

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

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

閉じる

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

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

閉じる