• 締切済み

ACCESSVBAにてフォーム内項目のプロパティ取得

ACCESSVBAでフォーム内の項目のプロパティを取得したいです。 (その項目はどのテーブルを参照しているかをみたいのです。値集合ソースなどでしょうか?) テーブルのプロパティを取得するプログラムサンプルはあるのでそれを利用して作成しようとしていますが、フォームの見方がわかりません。 テーブルの場合のサンプルでは (うろ覚えです。ごめんなさい) Dim XXXX As tabledef XXXX.attribute などを使用していて、このあたりをフォームに当てはめればよいのではと思っていますが、見当違いでしょうか。 初心者なうえにうろ覚えの内容で申し訳ありません。 よろしくお願いいたします。

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

やってみました。 何らかの形でフォームを開かないと、プロパティが読めませんでした。 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

関連するQ&A