VB6.0について質問です。
指定のフォルダ内にあるMDBファイル名をうまく取得できないのでお知恵をお貸しください。
最初のファイル名は取得できるのですがitem = Dirで次のファイル名を取得できないでいます。
INIfile_readでiniファイルから設定値を取得しています。
エラーメッセージは「プロシージャの呼び出し、または引数が不正です」
最初にファイル名を取得できているときにDirをウォッチ式の追加でみてみたらちゃんと次のファイル名は表示されます。
この場合どのような処理ミスが考えられますか??
path = INIfile_read("PATH", "HD")
item = Dir(path & "\" & "*.mdb", vbNormal)
Do While item <> "" ' ループを開始します。
date1 = Mid(item, 1, 4) & "/" & Mid(item, 5, 2) & "/" & Mid(item, 7, 2)
count = DateDiff("d", date1, Date) '今日とファイル作成日との差を取得
bkup = INIfile_read("DateDiff", "DATE") 'iniファイルから削除す日数を取得
If count > bkup Then
Kill (path & "\" & item)
End If
item = Dir
Loop
No.4ベストアンサー
- 回答日時:
dir()のLoopの中で、
Kill (path & "\" & item)
を実行しているからじゃないですか?
取得するファイル名のリストがどんどん変化(この場合は削除されて減っている)するので
削除後のファイル名は隙間が開くと思います。
例えば
2番目のファイル名を取得した後で、それを削除すると
次のDir()で取得した3番目のファイル名は
削除前の4番目のファイル名になって3番目のファイル名が取得できない
ということだと思います。
ファイルを削除した場合は、Dir()を最初からやり直したらどうでしょう?
No.5
- 回答日時:
Hayashi_Trek さんのおっしゃる通りだと思います。
私も以前同じ様なことを経験していました。
その時は、FileSystemオブジェクトを使って作り直しました。
参考URLをご覧下さい。
参考URL:http://msdn2.microsoft.com/ja-jp/library/y32kbeb …
No.3
- 回答日時:
どの行でエラーが発生いているのか不明のためはっきりとした原因がわかりません。
INIfile_read()の不具合、MDBのファイル名の定義ミス、count という変数名、その他にエラーの原因があると思われます。
下記コードで実行させてみましたが itemにはちゃんとファイル名が入っていました。
path = "c:\work"
item = Dir(path & "\" & "*.mdb", vbNormal)
Do While item <> "" ' ループを開始します。
Debug.Print item
item = Dir
Loop
No.2
- 回答日時:
ステップ実行で
item = Dir
のところでエラーが出ているのを確認しましたか?
bkup = INIfile_read("DateDiff", "DATE")
で次の項目を読みにいってエラーとなっているって事はないですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
バッチファイルで、iniファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトでファイル...
-
コマンドプロンプトで変数が数...
-
バッチコマンドでファイル名の...
-
バッチにて複数のcsvファイルを...
-
ExcelVBAのDirでスペース含むフ...
-
バッチファイルで、ファイル名...
-
[DOS] コピー先に同じファイル...
-
DOSのバッチ作成について‐FORの...
-
前日日付のファイルGETバッチ
-
【DOSバッチ開発】末尾のタブの...
-
テキストファイルのファイル名...
-
フォルダ内の更新日時が一番新...
-
【vbs】ファイル名の検索と該当...
-
コマンドでファイルコピーする...
-
バッチ処理で16進数でファイル...
-
ファイル名の頭5桁と同名のフォ...
-
バッチファイルでファイルを置換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトでファイル...
-
コマンドプロンプトで変数が数...
-
[DOS] コピー先に同じファイル...
-
バッチコマンドでファイル名の...
-
バッチファイルで、iniファイル...
-
ExcelVBAのDirでスペース含むフ...
-
ftp処理でmove(移動)を行いたい
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
【vbs】ファイル名の検索と該当...
-
word VBA ファイル名 保存
-
access,vbaでフォルダ内のファ...
-
VBA GetAttrについて教えてくだ...
-
バッチ処理で16進数でファイル...
-
ファイル名に ” を使うと エク...
-
サブフォルダからファイルをコ...
-
DOSのバッチ作成について‐FORの...
-
コマンドプロンプトまたはpower...
-
【バッチファイル】forコマンド...
おすすめ情報