"AllowEdits/更新の許可" プロパティ

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

適用対象

Form オブジェクト

AllowEdits プロパティを使用すると、フォームの使用時にユーザーが保存されたレコードを編集できるかどうかを指定できます。 ブール型の値の読み取り/書き込みが可能です。

expression.AllowEdits

式 必須。 [適用対象] リストのいずれかのオブジェクトを返す式。

設定

"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 アクションのデータ モード引数を設定すると、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