• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス リンク先のバックアップテーブル削除)

アクセスリンク先のバックアップテーブル削除

このQ&Aのポイント
  • リンク先DBでリンクテーブルのバックアップをとっているが、同じ名称のテーブルがある場合は処理しないというVBAを教えていただいたが、バックアップファイルを7日以上経過したものを削除する方法を教えてほしい。
  • リンク先DBでリンクテーブルのバックアップをとっているが、同じ名称のテーブルがある場合は処理しないというVBAを教えていただいたが、バックアップファイルの削除方法が分からない。
  • リンク先DBでリンクテーブルのバックアップをとっているが、同じ名称のテーブルがある場合は処理しないというVBAを教えていただいたが、バックアップファイルを7日以上経過したものを削除する方法を教えてほしい。初心者なので詳しい手順を教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

いろいろとエラーを回避すると以下のようになりました。 一応、動いているようです。エラー等があれば補足してください。 Sub test()   Dim athDB As DAO.Database   Dim tdfSet As DAO.TableDef   Dim strLinkDB As String   Set athDB = CurrentDb   Set tdfSet = athDB.TableDefs("T_サンプル")   strLinkDB = Mid(tdfSet.Connect, 11)   Set tdfSet = Nothing   athDB.Close: Set athDB = Nothing '------------------------------------   Dim db As DAO.Database   Dim i As Long   Set db = OpenDatabase(strLinkDB)   '少し込み入った検索   For i = db.TableDefs.Count - 1 To 0 Step -1     '"BK_サンプル_"で始まるテーブルを検索     If db.TableDefs(i).Name Like "BK_サンプル_*" Then       '7日以上過ぎたテーブルを検索。あれば削除。       'テーブル名の右から6文字取得して日付に変更。       If DateDiff("d", CDate(Format(Right(db.TableDefs(i).Name, 6), "@@/@@/@@")), Date) > 7 Then         db.TableDefs.Delete db.TableDefs(i).Name         db.TableDefs.Refresh       End If     End If   Next i   db.Close: Set db = Nothing End Sub

aka_ao
質問者

お礼

ありがとうございます! テーブル名から日付部分を抽出して「日付」に変換し、今日-7以上のテーブルを削除する・・・ なるほど!参考になりました。ありがとうございました!

すると、全ての回答が全文表示されます。

関連するQ&A