「みんな教えて! 選手権!!」開催のお知らせ

VBA初心者です。色々調べてやってみましたがうまくいきません。
どのようにすればいいでしょうか?
よろしくお願いいたします


ACCESSでVBAで、
注文フォルダ内にある 全てのorder_2022で始まるcsvファイルを
Accessの Order_2022というテーブル にインポートする
またファイル名の末尾一部を ファイル名というフィールド(短いテキスト型)に追加する。
(またはファイルごとに番号をふる その際はファイル名フィールドは長整数型)


結果→全てのファイルはインポートできたが、
ファイル名のフィールドには全て最後のファイル名が追加される
ファイル名で失敗したのでファイルごとに番号を振ろうとしたが
1,2,3,4,とは振られず全て4になる(全ファイル数は4ケです)
4回ファイルがインポートされた後、最後に1回ファイル名のフィールドに追加されているようです。

他に試したこと UPDATEではなくINSERT INTO で2種 試す

結果→両方とも 型変換エラー

DoCmd.RunSQL "INSERT INTO Order_2022(ファイル名) VALUES('" & filename & "')"

DoCmd.RunSQL "INSERT INTO Order_2022(ファイル名) VALUES(" & i & ")"




Public Function Import_ALLCSV_Files()

'order_2022のテーブルのデーターを削除します

DoCmd.RunSQL "DELETE * FROM Order_2022"


Dim myFilename As String
Dim myPath As String
Dim i As Integer    'ファイル名用変数

myPath = "C:\Users\y\Desktop\注文\

myFilename = Dir(myPath & "order_202*.csv")

i = 0

Do Until myFilename = ""

i = i + 1

'注文フォルダ内にある全てのorder_2022*ファイルをOrder_2022テーブルにインポートする

DoCmd.TransferText acImportDelim, "Orderインポート定義", "Order_2022", myPath & myFilename, False

'Order_2022テーブルの ファイル名フィールドにファイルごとの番号を追加

DoCmd.RunSQL "UPDATE Order_2022 SET ファイル名=" & i & ""

  '実行結果 ALL 4になる、その都度更新されない最後に一回のみ更新される"

’DoCmd.RunSQL "UPDATE Order_2022 SET ファイル名='" & Right(myFilename, 6) & "' "

'ファイル名で試すも実行結果 ALL29.csvになる 


' 次のファイル名取得
 myFilename = Dir()

Loop

End Function

A 回答 (1件)

こんちにちは。



恐らくCSVファイルを1レコード毎に読み込んでいかないとダメな気がしますよ。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報