我在MS Access 2013中工作,我想为我在表单上创建的按钮编写一些VBA代码。我希望代码做两件事:将我指定的值插入空字段并锁定表单中的所有字段。
acCmdFreezeColumn似乎不合适,因为它没有引用表单。我目前的想法是使用这个框架:
Sub buttonLockForm1_Click()
Dim intResponse As Integer
intResponse = MsgBox( _
Prompt:="Are you sure you want to lock the form?", _
Buttons:=vbYesNo + vbQuestion + vbDefaultButton2, _
Title:="Lock the Form?")
If intResponse = vbYes Then
...
...
Else: If intResponse = vbNo Then Exit Sub
End If
End Sub
非常感谢您提供的任何帮助!
答案 0 :(得分:0)
我猜测你是指表单上的控件(比如文本框)。 VBA btw中的空字符串和空字符串是不同的。把它放在你的if里面(显然是Dim在顶部)
Dim ctl As Control
For Each ctl In Me.Controls
if isnull(ctl.Value) or ctl.value = "" then _
ctl.value = "Value I want to save"
if ctl.name <> "Name of control I don't want to lock, like buttons" then _
ctl.enabled = false
Next ctl
controlname.enabled = false使控件变灰并锁定它。您还可以使用controlname.visible = false使其不可见,并使用controlname.locked = false使其仍为白色bg,但将其锁定以禁用编辑。