アクセス小僧:追加変更許可 [コンピューター]
アクセスで作成したデータベースに
レコードを追加しようとしたところ、追加できない旨のメッセージを出して、止まってしまった。
調べたところ、フォームのプロパティのうち、
の4つが関係ありそうな感じである。そこで、フォーム上にボタンを作って、上記のプロパティを切り替えるマクロ作りました。
Private Sub 追加変更許可_Click()
Debug.Print "Me.AllowAdditions(before)=" & Me.AllowAdditions
Select Case Me.追加変更許可.Caption
Case "追加変更許可"
Me.追加変更許可.Caption = "追加禁止"
Me.追加変更許可.BackColor = RGB(255, 255, 153)
Me.AllowAdditions = False ' レコード追加禁止
Me.AllowEdits = True ' 変更許可
Me.AllowDeletions = True ' 削除許可
Me.DataEntry = False ' データ入力用じゃない
Me.レコード追加.Enabled = False ' レコード追加ボタン無効化
Me.レコードの複製.Enabled = False ' レコードの複製ボタン無効化
Case "追加禁止"
Me.追加変更許可.Caption = "追加変更禁止"
Me.追加変更許可.BackColor = RGB(255, 204, 204)
Me.AllowAdditions = False ' レコード追加禁止
Me.AllowEdits = False ' 変更禁止
Me.AllowDeletions = False ' 削除禁止
Me.DataEntry = False ' データ入力用じゃない
Me.レコード追加.Enabled = False ' レコード追加ボタン無効化
Me.レコードの複製.Enabled = False ' レコードの複製ボタン無効化
Case Else
Me.追加変更許可.Caption = "追加変更許可"
Me.追加変更許可.BackColor = RGB(209, 234, 240)
Me.AllowAdditions = True ' レコード追加許可
Me.AllowEdits = True ' 変更許可
Me.AllowDeletions = True ' 削除許可
Me.DataEntry = False ' データ入力用じゃない
Me.レコード追加.Enabled = True ' レコード追加ボタン有効化
Me.レコードの複製.Enabled = True ' レコードの複製ボタン有効化
End Select
Debug.Print "Me.AllowAdditions(after)=" & Me.AllowAdditions
End Sub
それから、フォームをロードしたときに、必ずレコード追加できる状態になるように、フォーム読込時のマクロにも、次のコードを追加しました。
Private Sub Form_Load()
(中略)
' 追加変更許可
Me.追加変更許可.Caption = "追加変更許可"
Me.追加変更許可.BackColor = RGB(209, 234, 240)
Me.AllowAdditions = True ' レコード追加許可
Me.AllowEdits = True ' 変更許可
Me.AllowDeletions = True ' 削除許可
Me.DataEntry = False ' データ入力用じゃない
Me.レコード追加.Enabled = True ' レコード追加ボタン有効化
Me.レコードの複製.Enabled = True ' レコードの複製ボタン有効化
(中略)
End Sub
レコードを追加しようとしたところ、追加できない旨のメッセージを出して、止まってしまった。
調べたところ、フォームのプロパティのうち、
追加の許可 | AllowAdditions |
削除の許可 | AllowDeletions |
更新の許可 | AllowEdits |
データ入力用 | DataEntry |
の4つが関係ありそうな感じである。そこで、フォーム上にボタンを作って、上記のプロパティを切り替えるマクロ作りました。
Private Sub 追加変更許可_Click()
Debug.Print "Me.AllowAdditions(before)=" & Me.AllowAdditions
Select Case Me.追加変更許可.Caption
Case "追加変更許可"
Me.追加変更許可.Caption = "追加禁止"
Me.追加変更許可.BackColor = RGB(255, 255, 153)
Me.AllowAdditions = False ' レコード追加禁止
Me.AllowEdits = True ' 変更許可
Me.AllowDeletions = True ' 削除許可
Me.DataEntry = False ' データ入力用じゃない
Me.レコード追加.Enabled = False ' レコード追加ボタン無効化
Me.レコードの複製.Enabled = False ' レコードの複製ボタン無効化
Case "追加禁止"
Me.追加変更許可.Caption = "追加変更禁止"
Me.追加変更許可.BackColor = RGB(255, 204, 204)
Me.AllowAdditions = False ' レコード追加禁止
Me.AllowEdits = False ' 変更禁止
Me.AllowDeletions = False ' 削除禁止
Me.DataEntry = False ' データ入力用じゃない
Me.レコード追加.Enabled = False ' レコード追加ボタン無効化
Me.レコードの複製.Enabled = False ' レコードの複製ボタン無効化
Case Else
Me.追加変更許可.Caption = "追加変更許可"
Me.追加変更許可.BackColor = RGB(209, 234, 240)
Me.AllowAdditions = True ' レコード追加許可
Me.AllowEdits = True ' 変更許可
Me.AllowDeletions = True ' 削除許可
Me.DataEntry = False ' データ入力用じゃない
Me.レコード追加.Enabled = True ' レコード追加ボタン有効化
Me.レコードの複製.Enabled = True ' レコードの複製ボタン有効化
End Select
Debug.Print "Me.AllowAdditions(after)=" & Me.AllowAdditions
End Sub
それから、フォームをロードしたときに、必ずレコード追加できる状態になるように、フォーム読込時のマクロにも、次のコードを追加しました。
Private Sub Form_Load()
(中略)
' 追加変更許可
Me.追加変更許可.Caption = "追加変更許可"
Me.追加変更許可.BackColor = RGB(209, 234, 240)
Me.AllowAdditions = True ' レコード追加許可
Me.AllowEdits = True ' 変更許可
Me.AllowDeletions = True ' 削除許可
Me.DataEntry = False ' データ入力用じゃない
Me.レコード追加.Enabled = True ' レコード追加ボタン有効化
Me.レコードの複製.Enabled = True ' レコードの複製ボタン有効化
(中略)
End Sub
明けましておめでとうございます。
本年もよろしくお願いいたします。 (*´▽`*)
by mayu (2019-01-01 20:53)
mayuさん、
明けましておめでとうございます。
今年もよろしくお願いします(^_0)ノ
by cheese999 (2019-01-03 00:10)
ヤバイぜ! ありがとうございます(^_0)ノ
by cheese999 (2019-01-03 00:12)