QueryDefs の不明オブジェクト |
対象バージョン : 97, 2000(MDB), 2002(MDB), 2003(MDB)
最終更新日 : 2005/04/25
(オリジナル作成日:1997/04/18)
概 要
QueryDefs コレクションの QueryDef オブジェクトを調べて行くと、Name プロパティの頭に "~" が付いた不明なオブジェクトが存在することがあります。これらのオブジェクトを判断する方法です。
解 説
QueryDef オブジェクトで、Name の頭に "~" (チルダ)が付いたオブジェクトは、フォームやレポートで使用する Access が内部で作成した一時的なクエリーのようです。
【7.0, 97】
これらを判断する方法として、QueryDef
オブジェクトの "Type" プロパティが 3 であれば、これらと判断できるようです。なお、この
3 という値は、DAO 定数として定義されていません。
以下のプロシージャは、これら一時的に作成された QueryDef オブジェクトの名前をデバッグウィンドウへ表示する例です。
Public Sub Sample() Dim db As Database Dim qd As QueryDef Set db = CurrentDb Debug.Print "これらは一時作成 QueryDef です" For Each qd In db.QueryDefs If qd.Type = 3 Then Debug.Print " "; qd.Name End If Next End Sub
【2000 以降】
Access が内部で自動的に作成されたクエリーを "Type"
プロパティによる判断ができなくなりました。
代わりに、ユーザーが作成したクエリーが何かを知る方法が AccessObject として提供され、AllQueries コレクションを介して参照できるようになりました。
以下のプロシージャは、ユーザーが作成したクエリーの名前をイミディエイトウィンドウへ表示する例です。
Public Sub Sample() Dim curData As CurrentData Dim aObj As AccessObject Set curData = Application.CurrentData For Each aObj In curData.AllQueries Debug.Print aObj.Name Next End Sub
詳しくは、ヘルプの "目次" タブ − "プログラミング情報" − "Microsoft Access Visual Basic リファレンス" − "オブエジェクトおよびコレクション" − "A" − "AllQueries コレクション" をご参照ください。
改定履歴