2016-03-01 26 views
0

我在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

我猜你是指窗体上的控件(如文本框)。空和空字符串在VBA btw中是不同的。 (在顶部和点心明显)将这个您如果里面

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,但将其禁用,禁用编辑。