#451 | 特定のレコードだけ編集不可にするには? | フォーム、VBA | |
フォームに表示されているレコードすべてを編集不可にするには、「レコードセット」プロパティを"スナップショット"に設定する、「更新の許可」プロパティを"いいえ"に設定するなどの方法がありますが、VBAのイベントプロシージャとコードを使うことによって、特定の条件に合致するレコードだけを編集不可にすることができます。 たとえば、次の例では、カレントレコードの商品区分テキストボックスの値が”2”の場合には、その編集ができないようにしています。 Private Sub Form_Dirty(Cancel As Integer) 'フォームのダーティー時 '商品区分テキストボックスの値を確認 If Me!商品区分 = 2 Then '商品区分が2なら編集不可 Cancel = True End If End Sub Dirtyイベントは、フォームのレコードのいずれかのフィールドの内容が更新されようとしたときに発生します。そのタイミングでカレントレコードのフィールド値をチェック、もし更新させたくないレコードであれば、イベントプロシージャの引数である「Cancel」に"True"を代入します。それによってイベントがキャンセルされ、結果的に更新を受け付けてくれない(データのキーインが不可)ような状態にすることができます(レコードの削除は可能です)。 |
|||
|
Copyright © T'sWare All rights reserved |