適用対象
Form オブジェクト |
AllowEdits プロパティを使用すると、ユーザーがフォームを使用するときにユーザーに保存済みレコードの編集を許可するかどうかを指定できます。 ブール型の値の読み取り/書き込みが可能です。
expression.AllowEdits
expression 必ず指定します。 [適用先] リスト内のいずれかのオブジェクトを返す式。
設定
"AllowEdits/更新の許可" プロパティでは、次の設定が使用されます。
設定 |
Visual Basic |
説明 |
Yes/はい |
True |
(既定) ユーザーが保存済みのレコードを編集できます。 |
No |
False |
ユーザーが保存済みのレコードを編集できません。 |
"AllowEdits/更新の許可" プロパティを設定するには、フォームのプロパティ シート、マクロ、または Visual Basic for Applications (VBA) コードを使用します。
解説
"AllowEdits/更新の許可" プロパティを使用すると、フォームに表示される既存のデータが変更されないようにすることができます。 特定のコントロールのデータを変更されないようにするには、Enabled または Locked プロパティを使用します。
既存のレコードが変更されないようにする (フォームを参照のみ可能にする) には、"AllowAdditions/追加の許可"、"AllowDeletions/削除の許可"、"AllowEdits/更新の許可" の各プロパティを No に設定します。 また、"RecordsetType/レコード セット" プロパティを Snapshot に設定しても、レコードを参照のみ可能にすることができます。
プログラムによってフィールド値を変更すると、 AllowEdits プロパティの設定に関係なく、現在のレコードが編集可能になります。 プログラムで編集する必要があるレコードにユーザーが変更を加えないようにする (AllowEdits は No) 場合は、プログラムによる変更後にレコードを保存します。 AllowEdits プロパティ設定は、現在のレコードに対する未保存の変更が保存された後に再度適用されます。
注: OpenForm アクションの Data Mode 引数が設定されている場合、Microsoft Office Access 2007 は多数のフォーム プロパティ設定をオーバーライドします。 OpenForm アクションの Data Mode 引数が Edit に設定されている場合、Access は次のプロパティ設定を使用してフォームを開きます。
-
AllowEdits: Yes
-
AllowDeletions: Yes
-
AllowAdditions: Yes
-
DataEntry: No
"OpenForm/フォームを開く" アクションによってこれらの既存のプロパティ設定が上書きされないようにするには、"Data Mode/データ モード" 引数の設定を省略して、Access がフォームによって定義されたプロパティ設定を使用するようにします。
使用例
次の使用例では、フォーム上のすべてのコントロールの ControlType プロパティを調べます。 各ラベル コントロールおよびテキスト ボックス コントロールの "SpecialEffect/立体表示" プロパティは、プロシージャによって設定されます。 ラベル コントロールの "SpecialEffect/立体表示" プロパティが Shadowed に、テキスト ボックス コントロールの "SpecialEffect/立体表示" プロパティが Normal に設定され、"AllowAdditions/追加の許可"、"AllowDeletions/削除の許可"、および "AllowEdits/更新の許可" プロパティがすべて True に設定されている場合、基になるデータを編集できるように、intCanEdit 変数が設定されます。
Sub ToggleControl(frm As Form)
Dim ctl As Control
Dim intI As Integer, intCanEdit As Integer
Const conTransparent = 0
Const conWhite = 16777215
For Each ctl in frm.Controls
With ctl
Select Case .ControlType
Case acLabel
If .SpecialEffect = acEffectShadow Then
.SpecialEffect = acEffectNormal
.BorderStyle = conTransparent
intCanEdit = True
Else
.SpecialEffect = acEffectShadow
intCanEdit = False
End If
Case acTextBox
If .SpecialEffect = acEffectNormal Then
.SpecialEffect = acEffectSunken
.BackColor = conWhite
Else
.SpecialEffect = acEffectNormal
.BackColor = frm.Detail.BackColor
End If
End Select
End With
Next ctl
If intCanEdit = IFalse Then
With frm
.AllowAdditions = False
.AllowDeletions = False
.AllowEdits = False
End With
Else
With frm
.AllowAdditions = True
.AllowDeletions = True
.AllowEdits = True
End With
End If
End Sub