- ベストアンサー
Access2003でのテーブルの有無確認
こんにちは。 VB6.0 Access2003にて開発をしています。 Test.mdbにTableAという名前テーブルが存在していたら 削除を行うという処理をしたいのですが TableAという名前テーブルが存在しているかどうかを 調べる方法がわかりません。 TableAをオープンさせてエラー番号で判断するやり方 ならわかるのですが、ほかに方法はないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
No2です。 カタログのコネクションを間違えました。 申し訳ありません。 cat.ActiveConnection = "Provider=Microsoft.jet.OLEDB.4.0; data source = C:\folder\dbname.mdb" と置き換えてください。 あとお分かりだとは思いますが、 if tba.type = "TABLE" then も if tbl.type・・・・・ としてください。
その他の回答 (2)
ADOX でおこなうなら、 Dim cat as ADOX.Catalog Dim tbl as ADOX.Table Set cat = NEW ADOX.Catalog cat.ActiveConnection = CurrentProject.Connection for each tbl in cat.tables if tba.type = "TABLE" then debug.print tbl.name end if next tbl set cat = nothing のような形でテーブルのリストを出すことができます。
- AlexSuns
- ベストアンサー率67% (78/115)
DAOであれば、 DatabaseオブジェクトのTabledefsコレクションを検索して削除できます ADODBでの場合は失念しましたw '参照設定で「Microsoft DAO *.* Object Library」が必要です Private Sub Command1_Click() Const targetTableName As String = "aaa" Dim dbs As DAO.Database Dim tdf As DAO.TableDef Set dbs = DAO.OpenDatabase("C:\test.mdb") For Each tdf In dbs.TableDefs If tdf.Name = targetTableName Then dbs.TableDefs.Delete targetTableName Exit For End If Next dbs.Close Set dbs = Nothing End Sub