|    | 
     ▼ヤマ さん、たん さん: 
こんばんは。 
 
>>無理やりやろうとするなら、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 
 
 
あとはヤマさんの環境に応じてコード改変してみて下さい。 
 
 | 
     
    
   |