- 締切済み
ACCESSVBAにてフォーム内項目のプロパティ取得
ACCESSVBAでフォーム内の項目のプロパティを取得したいです。 (その項目はどのテーブルを参照しているかをみたいのです。値集合ソースなどでしょうか?) テーブルのプロパティを取得するプログラムサンプルはあるのでそれを利用して作成しようとしていますが、フォームの見方がわかりません。 テーブルの場合のサンプルでは (うろ覚えです。ごめんなさい) Dim XXXX As tabledef XXXX.attribute などを使用していて、このあたりをフォームに当てはめればよいのではと思っていますが、見当違いでしょうか。 初心者なうえにうろ覚えの内容で申し訳ありません。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- TAGOSAKU7
- ベストアンサー率65% (276/422)
やってみました。 何らかの形でフォームを開かないと、プロパティが読めませんでした。 Testで画面名と、開き方を指定してあげたら、デバッグ出力を行います。 Public Sub Test() Call GetFormProp("フォーム1", acNormal) End Sub Public Function GetFormProp(ByVal inFormName As String, Optional inViewMode As AcFormView = acDesign) As String Dim frmWk As Form Dim objProp As Object DoCmd.OpenForm inFormName, inViewMode, , , , acHidden Set frmWk = Forms(inFormName) For Each objProp In frmWk.Properties Debug.Print objProp.Name & vbTab & GetFormPropValue(objProp) Next objProp DoCmd.Close acForm, inFormName End Function Public Function GetFormPropValue(inObjProp As Object) As String On Error GoTo PGMERR Dim strRet As String If IsNull(inObjProp.Value) Then strRet = "《NULL》" Else strRet = "「" & inObjProp.Value & "」" End If PGMEND: GetFormPropValue = strRet Exit Function PGMERR: strRet = "《エラー:" & Err.Description & " 》" GoTo PGMEND End Function