• ベストアンサー

Access2003でのテーブルの有無確認

こんにちは。 VB6.0 Access2003にて開発をしています。 Test.mdbにTableAという名前テーブルが存在していたら 削除を行うという処理をしたいのですが TableAという名前テーブルが存在しているかどうかを 調べる方法がわかりません。 TableAをオープンさせてエラー番号で判断するやり方 ならわかるのですが、ほかに方法はないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#60992
noname#60992
回答No.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)

noname#60992
noname#60992
回答No.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)
回答No.1

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

関連するQ&A