1

私がやりたいのは、現在選択されているフィールドの説明をフォームのラベルに表示することです。現在表示されている場所(左下のステータスバー)はほとんど目立たないと思います。

ステータスバーのその値にアクセスするにはどうすればよいですか?たとえば、私のフォームで、「従業員名」フィールドを選択すると、左下の小さな文字で「登録している従業員の名前」と表示されます。

私は自分のフォームで何らかのイベントが発生したことを知っています。

 me.lblControlDescription.Caption = me.statusbar.caption

VBAのステータスバー(フィールドの説明)のテキストにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

ステータスバーのテキストは、現在のフィールドのDescriptionプロパティです。

DescriptionVBAから、フォームのレコードセットのフィールドにアクセスできます。

Debug.Print Me.Recordset.fields("id").Properties("Description")

したがって、という名前のラベルコントロールがある場合は、lblDescriptionその.Caption値をフィールドのに設定できますDescription

Me.lblDescription.Caption = Me.Recordset.fields("id").Properties("Description")

ただし、これはもっと複雑になる可能性があります。 Descriptionはユーザーが作成したプロパティです。つまり、値を指定するまで存在しません。また、セットが1つあるが、後でその値を削除すると、プロパティ自体は存在しなくなります。

Description存在しないときに取得しようとすると、VBAはエラー#3270「プロパティが見つかりません」をスローします。そのエラーをトラップして、それが発生したときに設定Me.lblDescription.CaptionすることができvbNullStringます。

また、いつ変更するかについての戦略も必要ですMe.lblDescription.Caption。現在アクティブなコントロールに基づいて設定するプロシージャを作成できます。次に、フォームの各コントロールのフォーカスイベントからそのプロシージャを呼び出します。これにはもっと良いアプローチがあるかもしれませんが、私は今それを見ていません。

于 2012-10-17T17:47:23.833 に答える