39 | コントロール系 - ソースオブジェクトに特定の文字列を含むサブフォームコントロールを収集する | ||
カレントデータベース内にあるすべてのフォームとその中のサブフォームコントロールを探索し、ソースオブジェクトプロパティ(そのコントロール内に表示されるフォーム名)に特定の文字列を含むコントロールの一覧を収集します。
これを応用することで、あるフォームが他のフォームのサブフォームとして使われているかどうかなどを調べることができます。
Sub Sample_4_14() 'ソースオブジェクトに特定の文字列を含むサブフォームコントロールを収集する Dim dbs As Database Dim ctn As Container Dim doc As Document Dim ctl As Control Dim strFormName As String Dim strFind As String strFind = "マスタ" Set dbs = CurrentDb Set ctn = dbs.Containers!Forms For Each doc In ctn.Documents strFormName = doc.Name DoCmd.OpenForm strFormName, acDesign For Each ctl In Forms(strFormName).Controls With ctl If .ControlType = acSubform Then If InStr(.SourceObject, strFind) > 0 Then Debug.Print strFormName, Debug.Print .Name, Debug.Print .SourceObject End If End If End With Next ctl DoCmd.Close acForm, strFormName, acSaveNo Next doc End Sub 実行例:
|
|||
|
Copyright © T'sWare All rights reserved |