■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#22692-0テーブルの存在確認(ADO)daira2001-08-27(月) 10:24
     #22693-0RE#22692:テーブルの存在確認(ADO)匿名226932001-08-27(月) 11:05
     #22715-0RE#22693:テーブルの存在確認(ADO)daira2001-08-28(火) 10:43
#22692-0
テーブルの存在確認(ADO)
初めまして。
dairaと申します。
Windows 98 & VB 6.0 & Access2000 
で、ADOでDBに接続し、テーブルの存在確認をしたい
のですが、普通に

private sub Command1_Click()
   Dim rs1 as New ADODB.Recordset
   Dim cn1 as New ADODB.Connection 

   cn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                          "Data Source=C:\Test.mdb"
   cn1.Open

   Rs1.open "テーブル", cn1, adOpenStatic, adLockOptimistic
end sub

と記述して、もし"テーブル"というテーブル名が存在しなければ、
エラーになリます。
それを防ぐために、存在確認を行いたいのですが、いろいろなホームページを検索
してみても、テーブルの存在確認の方法は、DAOの方法しか載っていませんでした。
ADOで、存在確認の方法はありますか?
ありましたら、教えてください。
よろしくお願いします。
#22693-0
RE#22692:テーブルの存在確認(ADO)
> Windows 98 & VB 6.0 & Access2000 
> で、ADOでDBに接続し、テーブルの存在確認をしたい

MDBであれば、システムテーブル[MSysObjects]を参照するという手もありますが、
より汎用的にするならば、ADOの「Tables コレクション」を列挙して調べれば良いと思います。
# DAOの「TableDefsコレクション」に相当。

詳細は、ADOX (ActiveX Data Objects Extensions for Data Definition Language and Security) の
解説をお読み下さい。


……あるいは、
  RS.Open "MyTableName", MyConnection, , adLockPessimistic, adCmdTableDirect
のような文を発行し、テーブルが存在しないときのエラーをトラップするという手も。
#22715-0
RE#22693:テーブルの存在確認(ADO)
レス有難うございます。
> MDBであれば、システムテーブル[MSysObjects]を参照するという手もありますが、
これは知らなかったです。参考になりました。
> より汎用的にするならば、ADOの「Tables コレクション」を列挙して調べれば良いと思います。
> # DAOの「TableDefsコレクション」に相当。
> 
> 詳細は、ADOX (ActiveX Data Objects Extensions for Data Definition Language and Security) の
> 解説をお読み下さい。

ADOXでは、ADOで出来ないことを補っているのですよね?(DAOでは出来ることを)
ADOXはあまり使っていませんでしたので、勉強しなきゃ!と思いました。

> ……あるいは、
>   RS.Open "MyTableName", MyConnection, , adLockPessimistic, adCmdTableDirect
> のような文を発行し、テーブルが存在しないときのエラーをトラップするという手も。
こちらは知っていました。本当に方法が無かった場合の手段に取っておいたのですが・・・

ADOのTablesコレクションを使ってみたいと思います。
大変参考になりました。
有難うございました。
このページと関連する記事:
#7954-0モジュールから指定したテーブルが存在するか確認するには?1999-10-21(木) 18:00
#11091-0Ms-Accessですでに存在しているテーブルかどうかを返す関数2000-09-04(月) 10:11
#2018-0テーブル名の抽出2002-04-19(金) 12:17
#10043-0直接テーブルセットを指定2000-07-28(金) 16:56
#8686-0ADOXについて2000-06-08(木) 14:14
#1953-0はじめまして2002-04-12(金) 12:49
#2358-0サーバー接続でサーバーがみつからない2002-06-03(月) 10:55
#4207-0RE#4206:テーブルの有無の確認1999-12-09(木) 16:15
#33707-0mdb ファイルの中にあるテーブル名の取得2000-11-19(日) 13:06
#28121-0ADOでアクションクエリーの実行について2000-08-17(木) 16:09
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)