Accessでフォーム、コントロールの情報を取得するのは以下の通り。
※モジュールとして作成しています。
Option Compare Database ' ' フォームに配置されたコントロールの情報取得します。 ' Public Function get_controls() Dim obj As AccessObject Dim myDB As Object Dim formname As String Dim ctl As Control Dim wkTextBox As TextBox Dim wkButton As CommandButton Dim wkComboBox As ComboBox Dim wkLabel As Label '自分自身(MDB)を取得する Set myDB = Application.CurrentProject 'すべてのフォームを取得 For Each obj In myDB.AllForms formname = obj.Name 'フォームをデザイナで開く DoCmd.OpenForm formname, acDesign, , , , acHidden 'フォーム内のコントロールを取得 For Each ctl In Forms(formname).Controls Call putText_Propatey(formname, ctl) Next ctl 'フォームを閉じる DoCmd.Close acForm, formname, acSaveNo Next obj MsgBox "プロパティ情報を出力しました。" Set myDB = Nothing End Function Private Function putText_Propatey(ByVal pformName As String, ByVal inCtrl As Object) Dim fileNo As Integer Dim buf As String Dim i As Long On Error Resume Next fileNo = FreeFile Open "D:\Propatey.csv" For Append As #fileNo '共通部の出力 buf = buf & "pformName=" & pformName & "," buf = buf & "Name=" & inCtrl.Name & "," buf = buf & "TypeName=" & TypeName(inCtrl) & "," 'プロパティの中身を出力 For i = 0 To inCtrl.Properties.Count - 1 buf = buf & inCtrl.Properties(i).Name & "-" & inCtrl.Properties(i).Value & "," Next Print #fileNo, buf Close #fileNo End Function
動作確認環境:Access 2007