- ベストアンサー
「もしテーブルが存在するなら削除する」
「もしテーブルが存在するなら削除する」ってどうやればいいでしょう? DoCmd.DeleteObject acTable, "Table1" これでテーブルの削除は出来るのですが Table1が存在しない場合はエラーになります。 なのでこのコードを実行する前にテーブルの存在を確認したいのですが どうやってifで条件分岐すればよろしいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コード表のツールから参照設定で Microsoft DAO xx Object Library にチェックを入れ、(xxは3.6のような数字) 以下のように、 Sub test() Dim db As DAO.Database Dim tdf As TableDef Set db = CurrentDb For Each tdf In db.TableDefs If tdf.Name = "Table1" Then DoCmd.DeleteObject acTable, tdf.Name End If Next Ed Sub testの中身をボタンのクリックイベントなどに 入れて実行します。
その他の回答 (2)
- m3_maki
- ベストアンサー率64% (296/460)
エラーを無視するようにするのも、手っ取り早い方法としてアリです。 On Error Resume Next DoCmd.DeleteObject acTable, "Table1" Err.Clear On Error GoTo 0
お礼
ありがとうございます。
- piroin654
- ベストアンサー率75% (692/917)
No1です。 No1以外の方法として、 Sub test() Dim obj As AccessObject Dim db As Object Set db = Application.CurrentData For Each obj In db.AllTables If obj.Name = "Table1" Then DoCmd.DeleteObject acTable, obj.Name End If Next obj Set db = Nothing End Sub のような方法もあります。この場合は特にDAOに チェックを入れる必要はありません。
お礼
ありがとうございます。
お礼
ありがとうございます。