#123 | レコードの編集をフォーム側で制御する方法 | フォーム、VBA | |
一般に、フォームを開く場合はDocmdオブジェクトの「OpenFormメソッド」を使います。このメソッドには"datamode"という引数があり、フォームに表示されたレコードに対する編集の許可を指定することができます。 しかし、この引数には、レコードの追加のみ許可する(定数acFormAdd)、編集を許可する(定数acFormEdit)、読み込み専用とする(定数acFormReadOnly)、フォームのプロパティの設定に従う(定数acFormPropertySettings)の4種類しか指定することができません。 一方、フォームには、レコード編集に関連したプロパティとして、次の4つのプロパティがあります。
その一例として、フォームの"Load/読み込み時"イベントプロシージャを使った方法を次に示します。 次の例では、OpenArgs引数に応じてその設定を変更しています。OpenArgs引数に何も指定されていないときはフォームのデフォルトの設定を使います。もし何かが指定されていたら、追加と削除はできないようにします。 Private Sub Form_Load()
この方法によって、あるフォームがさまざまな別のフォームから呼び出されるような場合に、呼び出し元のフォームに応じて編集の許可を切り替える、といったことが可能になります。With Me If Not IsNull(.OpenArgs) Then .AllowAdditions = False .AllowDeletions = False End If End With End Sub |
|||
|
Copyright © T'sWare All rights reserved |