|
▼ヤマ さん、たん さん:
こんばんは。
>>無理やりやろうとするなら、MSys関係の隠しテーブルを参照し、
>>ワイルドカードで抽出条件を指定し、該当したテーブル名を個々に
>>呼び出して、DeleteObjectするというルーチンを組めば
>>可能と思われます。
「テーブル」で始まる Table を列挙する例です。
Sub ワイルドカードを使用したテーブル名の抽出1()
'要参照設定 Microsoft DAO x.x Object Library
Dim strSQL As String
Dim rs As DAO.Recordset
strSQL = "SELECT Name From MSysObjects " _
& "Where Name Like 'テーブル*' AND Type = 1"
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
Do Until rs.EOF
Debug.Print rs![Name]
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub
Tabledef オブジェクトを使う方法もあります。
Sub ワイルドカードを使用したテーブル名の抽出2()
'要参照設定 Microsoft DAO x.x Object Library
Dim TName As String
Dim db As DAO.Database
Dim i As Long
Set db = CurrentDb
For i = db.TableDefs.Count - 1 To 0 Step -1
If db.TableDefs(i).Name Like "テーブル*" Then
Debug.Print db.TableDefs(i).Name
End If
Next
Set db = Nothing
End Sub
あとはヤマさんの環境に応じてコード改変してみて下さい。
|
|