リストボックスにクエリー名を表示する

.mdbファイルに登録されているクエリー名リストボックス(コンボボックス)に表示するには,以下のような自作関数を作って,リストボックスの値集合タイププロパティに指定します。

※ サンプルファイルはこちら (MyQuery.EXE (65.1KB))

 

'リストボックスにクエリー名を表示します。
Public Function gfListQuery( _
    fld As Control, ID As Variant, row As Variant, col As Variant, code As Variant) As Variant


    Static strQData() As String
    Static Entries As Integer
    Dim ret As Variant
    Dim objAccObj As AccessObject
    Dim objPrp As AccessObjectProperty
    
    ret = Null
    Select Case code
    Case acLBInitialize            ' 初期化します。
        Entries = -1
        For Each objAccObj In Application.CurrentData.AllQueries
            Entries = Entries + 1
            ReDim Preserve strQData(Entries)
            strQData(Entries) = objAccObj.Name
        Next
        ret = -1                   ' 0 以外ならば何でもいいです。
    Case acLBOpen                  'コントロールの固有の ID を設定します
        ret = Timer                '一箇所しか使わないのならば,固定値でいいです。
    Case acLBGetColumnCount        '列数を設定します。必ずプロパティで設定したものと同じにします。
        ret = 1
    Case acLBGetColumnWidth        '列幅を設定します。
        ' -1 は既定の幅もくしはプロパティに設定しているものを使用します。
        Select Case col
        Case 0
            ret = -1
        Case 1
        
        '以下,列数にあわせて同様
        
        Case Else
        
        End Select
    Case acLBGetFormat             'フォーマットを設定します。
        Select Case col
        Case 0
            
        Case 1
        
        '以下,列数にあわせて同様
        
        Case Else
        
        End Select
    Case acLBGetRowCount           '行数を設定します。
        ret = Entries + 1
    Case acLBGetValue              '表示するデータを設定します。
        Select Case col
        Case 0
            ret = strQData(row)
            
        Case 1
        
        '以下,列数にあわせて同様
        
        Case Else
        
        End Select
    Case acLBEnd                   '終了します。
        Erase strQData
    End Select
    
    gfListQuery = ret
    
End Function

上記を標準モジュールに作って,以下のように,リストボックスのプロパティに設定します。

リストボックスプロパティ

 

 

Published: 2001-10-25

Updated: 2002-01-13

Last Updated: 2013-06-14

つくれますの部屋

Copyright(C) 2011 Yasuharu Takahashi, All Rights Reserved.