#134 サブフォームをリストボックス風に使う方法 フォーム、VBA

リストボックスの特徴は、ある項目をクリックすると、複数列が表示されている場合でもそれら全体が選択されることです。一方、フォームの場合は、クリックされたフィールドだけが選択されてしまい、行全体を選択するにはレコードセレクタをクリックする必要があります。

しかし、レコード移動時イベントを利用して、常にレコード全体が選択されるようにすると、サブフォームをリストボックス風に使うことができます。

作成手順:
  1. リストボックスとして使うためのサブフォームを作成します。

  2. サブフォームの「更新の許可」・「削除の許可」・「追加の許可」の各プロパティを"いいえ"にします。

  3. サブフォームの各テキストボックスの「編集ロック」プロパティを"はい"にします。

  4. 必要に応じて、サブフォームのデザインをリストボックス風に変更します。

  5. サブフォームの「レコード移動時」イベントプロシージャを次のようにします。定数 acCmdSelectRecord は、レコード全体を選択するためのRunCommandメソッドのオプションです。
    Private Sub Form_Current()
      DoCmd.RunCommand acCmdSelectRecord
    End Sub

  6. メインフォームを作成し、上記サブフォームを配置します。

実行画面:
実行画面 サブフォームのどのフィールドをクリックしても、そのレコード全体が選択されて反転表示になります。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved