#661 フィールドにコメント機能を付けるには? フォーム、VBA

Excelには「コメント」という機能があります。これは、セルごとに自由にメモ書きなどを付けられる機能です。


Accessにはそのような機能はありませんが、テーブル構造やフォームのプログラムを工夫することで、似たような感じの機能を付加することはできます。ここでは「仕入先」というテーブルを例に説明します。

  1. まずテーブルにおいて、本来の仕入先の情報に加えて、各データのコメントを保存するためのフィールドを追加します(例ですのでここでは3つだけとします)。


  2. そのテーブルをレコードソースとするフォームを作成します。
    ここでは本来コメントに関するフィールドはコントロールとして配置しない方がルックスはよいと思いますが、動作確認のためあえて配置しておくこととします。


  3. 次に、コメントを付ける3つのコントロールについて、その編集画面を開くためのプログラムを追加します。
    そのタイミングは任意です。クリックや右クリックで表示させるようにしてもよいですが、ここでは”ダブルクリック”で表示させるものとして「DblClick/ダブルクリック時」イベントプロシージャを使います。
    ここでは、編集用のフォームからコメントデータを参照・代入するため、それぞれ該当するコメントのフィールド名を引数として与えています("会社名コメント"や"フリガナコメント"の部分)。

    下記がそのコードです。

    Private Sub 会社名_DblClick(Cancel As Integer)
    '[会社名]のダブルクリック時

      DoCmd.OpenForm "fdlgコメント編集", , , , , , "会社名コメント"

    End Sub

    Private Sub 会社名フリガナ_DblClick(Cancel As Integer)
    '[会社名フリガナ]のダブルクリック時

      DoCmd.OpenForm "fdlgコメント編集", , , , , , "フリガナコメント"

    End Sub

    Private Sub 部署_DblClick(Cancel As Integer)
    '[部署]のダブルクリック時

      DoCmd.OpenForm "fdlgコメント編集", , , , , , "部署コメント"

    End Sub


  4. 次に、コメントを表示・編集するためのフォームを作成します。
    上記の呼び出し元フォームと同じテーブルをソースとして操作する方法もありますが、ここではレコードソース”なし”の非連結フォームとし、単にコメント編集用のテキストボックスを1つと、編集結果を確定/キャンセルするためのボタンを配置するだけのスタイルとします。

    ※任意ではありますが、ここではフォームについて下記のプロパティ設定を行っています。その他、適宜設定を行ってください。
       自動中央寄せ:はい、境界線スタイル:なし、レコードセレクタ:いいえ、移動ボタン:いいえ、
       スクロールバー:なし、コントロールボックス:いいえ、ポップアップ:はい、作業ウィンドウ固定:はい

  5. フォーム読み込み時に引数(OpenArgs)で指定されたコントロールの値を参照しその内容をこのフォームのテキストボックスに代入するコード、および[OK]・[キャンセル]ボタンがクリックされたときのコードを次のように記述します。

    Private Sub Form_Load()
    'フォーム読み込み時

      '呼び出し元フォームのコメントをテキストボックスに代入
      Me!コメント = Forms!frm仕入先(Me.OpenArgs)

    End Sub

    Private Sub cmdOK_Click()
    '[OK]ボタンクリック時

      'テキストボックスの値を呼び出し元フォームのコメントに代入
       Forms!frm仕入先(Me.OpenArgs) = Me!コメント

      'このフォームを閉じる
      DoCmd.Close acForm, Me.Name

    End Sub

    Private Sub cmdキャンセル_Click()
    '[キャンセル]ボタンクリック時

      'このフォームを閉じる
      DoCmd.Close acForm, Me.Name

    End Sub

実行例:
  1. 画面の初期状態

  2. 「会社名」をダブルクリックしてコメント編集用画面を表示

  3. コメントを入力

  4. [OK]ボタンのクリックでコメントが書き込まれる

関連Tips:
   #662 マウスポインタの近くでフォームを開くには?
| Index | Prev | Next |



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