Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

CurrentDataプロパティを用いて全クエリ名を取得する方法 : VBAのTips解説



CurrentDataプロパティ

CurrentDataプロパティは、CurrentData オブジェクトおよびその関連コレクションにアクセスし、値を取得することができるプロパティです。CurrentData オブジェクト等の関連図は以下のようになっています。

  • 書式

AccessObject オブジェクトをコレクションで付けられたインデックスまたは Name プロパティの設定値で参照するには、次のいずれかの構文を使います。

AllQueries (0)
AllQueries ("name")
AllQueries![name]
  • 複数のオブジェクト

AccessObject オブジェクトは既存のオブジェクトに対応しているので、AccessObject オブジェクトを新規作成したり、また既存のオブジェクトを削除することはできません。

AccessObject コレクション 格納されている情報
Data access page AllDataAccessPages 保存されたデータ アクセス ページ
Database diagram AllDatabaseDiagrams 保存されたデータベース ダイアグラム
Form AllForms 保存されたフォーム
Function AllFunctions 保存された関数
Macro AllMacros 保存されたマクロ
Module AllModules 保存されたモジュール
Query AllQueries 保存されたクエリ
Report AllReports 保存されたレポート
Stored procedure AllStoredProcedures 保存されたストアド プロシージャ
Table AllTables 保存されたテーブル
View AllViews 保存されたビュー

事例 ) 全てのクエリ名を取得し、メッセージボックスに表示する

全てのクエリ名を取得しメッセージボックスに表示します。サンプルデータベースには、「Q_provider」「Q_sample」の2つのクエリが存在するものとします。では、以下のプロシージャを記述して下さい。

Sub MyQuerySearch()

    On Error GoTo エラー

    Dim obj As AccessObject
    Dim dbs As Object
    Dim strmsg As String
    
    Set dbs = Application.CurrentData
    For Each obj In dbs.AllQueries ' --- A
        strmsg = strmsg & obj.Name & vbNewLine
    Next
   
    MsgBox strmsg
        
    Exit Sub
    
エラー:
    MsgBox "エラーID : " & Err.Number & vbNewLine & Err.Description, 16
End Sub
解説
  1. 全てのクエリ名をFor Eachを用いて取得します。
動作確認

以下のメッセージボックスが開きます。

事例2 ) 開いているクエリ名を取得し、メッセージボックスに表示する

今、開いているクエリの名前を取得しメッセージボックスに表示します。サンプルデータベースには、「Q_provider」「Q_sample」の2つのクエリが存在するものとし、「Q_provider」クエリを開いています。では、以下のプロシージャを記述して下さい。

Sub MyQuerySearch2()

    On Error GoTo エラー

    Dim obj As AccessObject
    Dim dbs As Object
    Dim strmsg As String
    
    Set dbs = Application.CurrentData
    
    For Each obj In dbs.AllQueries
        If obj.IsLoaded = True Then ' --- A
            strmsg = strmsg & obj.Name & vbNewLine
        End If
    Next
    
    MsgBox strmsg
        
    Exit Sub
    
エラー:

    MsgBox "エラーID : " & Err.Number & vbNewLine & Err.Description, 16

End Sub
 
解説
  1. IsLoaded プロパティを用いて、該当クエリが開いているかチェックします。IsLoaded プロパティは、該当のAccessObjectがロードされている場合、True値を返します。
動作確認
  1. Q_providerクエリを開きます。

  1. プロシージャを実行します。

関連ページ

ページの先頭へ 前ページへ戻る

 


CurrentDataプロパティを用いて全クエリ名を取得する方法 : VBAのTips解説


 

-Microsoft Access Club-

cPanel管理者用コンパネWHMの操作管理手順を発信しています。
cPanel管理者用コンパネ「WHM」の操作管理手順を発信中・・・。