• 締切済み

アクセスで複数データ削除

myPath = "D:\" myfilename = Dir(TxB04) Do Until myfilename = "" DoCmd.TransferText acImportDelim, , "tbl1", myPath & myfilename, False myfilename = Dir Loop MsgBox "取込が正常に終了しました。" MsgBox "二重打刻をチェックしてます。" '取込ファイル名を変換します。 DoCmd.SetWarnings False DoCmd.OpenQuery "データ変換" DoCmd.OpenQuery "実績追加" DoCmd.OpenQuery "重複データ削除" DoCmd.OpenQuery "削除クエリ" DoCmd.SetWarnings True Cmd21.Enabled = False ★Kill (strInFPath)★ 'メッセージマスタ取得 Sqlstate2 = "SELECT * FROM 氏名登録なし;" Set M_MSG2 = MyDB2.OpenRecordset(Sqlstate2, dbOpenSnapshot) If M_MSG2.RecordCount > 0 Then DoCmd.SetWarnings False DoCmd.OpenQuery "くえり1" DoCmd.SetWarnings True End If Exit Sub Err_Set_Seisan_Click: End Sub 今、vbでこのようなデータ取込を作っており★のところで取込データを削除させてます。 ただこれだと1つのデータしか削除できず、複数あったときには対応が困ってます。 こちら歯どのような対応でできるでしょうか? ご指導お願いします。

みんなの回答

noname#140971
noname#140971
回答No.3

補足:KILL は危険。 通常、原始データは削除しないでリネームするかバックアップフォルダに移すと思いますが・・・。

noname#60992
noname#60992
回答No.2

do-loopのなかでkill処理してはどうでしょうか?

noname#140971
noname#140971
回答No.1

Const conPATH = "C:\Temp\" Const conIMPORTFILES = "ImportData*.txt" Private Sub コマンド1_Click()   Dim stPath   As Integer   Dim strFileName As String      If Verify("ファイルを取込します?") = vbYes Then     strFileName = Dir(conPATH & conIMPORTFILES)     Do Until strFileName = ""       DoCmd.TransferText acImportDelim, , "tab1", conPATH & strFileName, False       strFileName = Dir()     Loop   End If End Sub Private Sub コマンド2_Click()    Kill conIMPORTFILES End Sub Verify()は、標準モジュールに登録しないと使えません。 さて、先に、インポート対象ファイルを呼び込むのにワイルドカードを使っていましたよね。 肝心の strInFPath でワイルドカード(* or ?)を使っていますか? そこが問題です。 なお、実際のインポートテストでは、 ImportData01.txt ImportData02.txt を用いました。 これは、"ImportData*.txt" にパターンマッチしますので当然に削除されます。

関連するQ&A