こんばんは、お世話になってます。
Win2K+VB6(sp4)+ADO2.5にて開発しています。
(動作はWin2Kにこだわらないけどとりあえず2000で)
その際にアプリケーションからMDBにアクセスしているのですが、
テーブルがあるかどうかを調べる方法を調査しています。
色々調べ、
・SELECTしてみてエラーが返ってくるかどうかで判断
・OpenSchemaメソッドでテーブル一覧を取得して判断
の2つ(特に後者)かなぁと思っているのですが、
よりスマートな方法はあるのでしょうか?
(理想はメソッド一発であるかないかわかる、ですよね)
もしご存知の方がいらっしゃいましたらお願いします。
OpenSchemaだと、こうなりますよね。
If Cn.OpenSchema(adSchemaTables, Array(Empty, Empty, TableName, "TABLE")).EOF Then
MsgBox TableName & "はありません"
Else
MsgBox TableName & "が存在しています。"
End If
それ以外の手段となると、MSysObjectsを参照するか、
ADOX.Tablesを参照するか、DAO.TableDefsを参照するか
…といったところですね。
魔界の仮面弁士様、ありがとうございます。m(__)m
やはりOpenSchemaあたりがよさそうですね。
ADOXなどよりはこっちの方がスマートですし。
SQLでそんなのができないかなー?とか
色々調べたりたりたりしてみましたが、
OpenSchemaよりいい感じのが無かったです。