Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

AccessVBAで任意の複数リンクテーブルをAccessVBAを動かす際に削除したいと考えております
Access2016を使っております

例えば、
B
から始まるリンクテーブルのみ
削除し
残したいテーブルは残す
を実装したいです
DoCmd.DeleteObject acTable,"テーブル名"
は,存じておりまして
具体的な完全なテーブル名がわかる場合の削除はできるのですが任意の固定の文字列から始まるテーブルを削除するコードが記述できません
AccessVBAの正規表現を使えばできるのかと
踏んでいますが良い方法が検索しても
わかりませんでした
ご教授よろしくお願い申し上げます。
capeofdragon

A 回答 (1件)

ADOXを使えば、テーブル名をリストにすることができますので、対象テーブルのリストを作って、削除すればよいと思います。


https://www.feedsoft.net/access/tips/tips131.html
ぶっちゃけ、削除もできます。
https://excelwork.info/excel/%E3%83%86%E3%83%BC% …
    • good
    • 0
この回答へのお礼

ご返信感謝いたします
以下の様にし実装できました

Public Function Delete_LinkTable()
Dim DB1 As DAO.Database
Dim TD1 As TableDef

Set DB1 = CurrentDb()
For Each TD1 In DB1.TableDefs
If TD1.Attributes = リンクテーブルのAttributes値 Then 'リンクテーブルか?
If Left(TD1.NAME, 1) = "B" Then 'Bで始まる名前か?
Debug.Print "Deleted " & TD1.NAME 'テスト時のみ確認用
DoCmd.DeleteObject acTable, TD1.NAME
End If
End If
Next

DB1.Close
End Function

お礼日時:2022/11/21 11:30

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

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


おすすめ情報

このQ&Aを見た人がよく見るQ&A