2017-02-06 3 views
0

TableAが存在するかどうかをチェックして、テーブル全体を削除する必要があります。それがなければ、私はテーブルを作成します。これがVBA/MS Accessで実装できるかどうかは本当に分かりませんでした。私たちが使用できるSQLでVBAスクリプトがMS ACCESSに存在するかどうかを確認するスクリプト。削除する場合は削除

DROP TABLE IF EXISTS dbo.TableA 

誰もがこれを実装する方法任意のアイデアを持っていますか?ありがとうございました!

答えて

0

TableDefsコレクションを使用することを検討してください。ここでアイテムを繰り返し処理し、コードで渡された同じDDL SQL文を使用して条件付きで削除または作成してください。

Dim db As Database 
Dim tbldef As TableDef 

Set db = CurrentDb 

For each tbldef in db.TableDefs 
    If tbldef.Name = "TableName" Then 
     db.Execute "DROP TABLE " & tbldef.Name, dbFailOnError 
    End if 
Next tbldef 

db.Execute "CREATE TABLE TableName (...rest of SQL...);", dbFailOnError  

' UNINITIALIZE OBJECTS 
Set tbldef = Nothing 
Set db = Nothing 
+0

この作業は完璧です!ありがとうございました。 – user1688194

1

上記のコードよりもはるかに簡単な方法があります。

On Error Resume Next 
    currentdb.execute "DROP TABLE TABLENAME;" 
On Error Goto 0 

これが何をするか、テーブルを削除しようとテーブルが存在しないため、エラーが発生した場合の行をスキップしています。わずか3行で、より速く走ります。

関連する問題