プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。
VB6.0 Access2003にて開発をしています。

Test.mdbにTableAという名前テーブルが存在していたら
削除を行うという処理をしたいのですが
TableAという名前テーブルが存在しているかどうかを
調べる方法がわかりません。

TableAをオープンさせてエラー番号で判断するやり方
ならわかるのですが、ほかに方法はないのでしょうか?

A 回答 (3件)

No2です。

 
カタログのコネクションを間違えました。 
申し訳ありません。

cat.ActiveConnection = "Provider=Microsoft.jet.OLEDB.4.0; data source = C:\folder\dbname.mdb"
と置き換えてください。
あとお分かりだとは思いますが、
if tba.type = "TABLE" then

if tbl.type・・・・・
としてください。
    • good
    • 0

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

のような形でテーブルのリストを出すことができます。
    • good
    • 0

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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!