ACCESS 2007 のフォームで、フィールドを編集可能のままにし、他のすべてのフィールドを読み取り専用にすることはできますか? 私のフォームには約 40 個のコントロールがあり、1 つずつしか読み取れないようにするのは不便です。ユーザーがオプションを選択するとフォーム全体が編集可能になるように、これらのフィールドの1つ(オプショングループ)を編集可能にしたい
質問する
7210 次
2 に答える
1
VBA プロシージャを使用して、フォームの Controls コレクションをループ処理し、各コントロールの.Locked
プロパティを に設定できますTrue
。各コントロールの.ControlType
プロパティを確認し、ラベルやコマンド ボタンなどのコントロールを無視します。IOW は、.Locked
意味のあるタイプのコントロールのみに設定されます。
于 2013-03-26T16:52:01.107 に答える
1
オプション1
ロックしたいフォームをサブフォームにして、オプション グループをメイン フォームにすることができます。
例えば:
Private Sub Form_Current()
Me.aTable_subform.Form.AllowAdditions = False
Me.aTable_subform.Form.AllowEdits = False
Me.aTable_subform.Form.AllowDeletions = False
End Sub
Private Sub PickOne_AfterUpdate()
Select Case Me.PickOne
Case 1, 3
Me.aTable_subform.Form.AllowAdditions = True
Me.aTable_subform.Form.AllowEdits = True
Me.aTable_subform.Form.AllowDeletions = True
Case 2
Me.aTable_subform.Form.AllowAdditions = False
Me.aTable_subform.Form.AllowEdits = True
Me.aTable_subform.Form.AllowDeletions = False
End Select
End Sub
コメントについてのさらなる注意事項
オプション 2
メイン フォームが開いたときに pop-uo フォームを開くことができます。この例では、メイン フォームの前に表示されます。
メイン フォームのコード:
Private Sub Form_Close()
DoCmd.Close acForm, "popupform"
End Sub
Private Sub Form_Load()
DoCmd.OpenForm "popupform", , , , , acDialog
End Sub
Private Sub PickOne_BeforeUpdate(Cancel As Integer)
Select Case Me.PickOne
Case 1
If MsgBox("You chose this. Continue?", vbYesNo) = vbYes Then
Forms!mainform.AllowAdditions = True
Forms!mainform.AllowEdits = True
Forms!mainform.Form.AllowDeletions = True
''Setting the visibility leaves the form
''available but it is no longer a dialog form
''but you must remember to close it elsewhere
''If the form is not needed, just close it here
Me.Visible = False
Else
Cancel = True
End If
Case 2
''Whatever
End Select
End Sub
オプション 3
各コントロールには、デザイナーが使用するためのタグ プロパティがあります。たとえば、ロックする必要があるすべてのコントロールに「Admin」を追加できます。load イベントまたはそれ以降のイベントを使用する必要があります。
Private Sub Form_Load()
For Each ctrl In Me.Controls
''For example:
If ctrl.Tag = "Admin" And TheOption <> "Admin" Then
ctrl.Locked = True
End If
Next
End Sub
複数のタグを簡単に作成できます。1 つは管理者ユーザーまたは OptionX 用で、もう 1 つは他のユーザーまたは OptionY 用です。
于 2013-03-26T17:17:00.777 に答える