控制窗体中新记录可编辑,旧记录锁定
Private Sub Form_Current()
If Me.NewRecord = True Then
Me.Form.AllowEdits = True
Else
Me.Form.AllowEdits = False
End If
End Sub
对连续窗体或数据表窗体的记录进行有选择的锁定,看起来是一个麻烦的事件。因为对应字段的控件名就一个,你要锁定它的话所有的都锁定了,不会只针对一条或者几条记录来锁定。怎么解决这个问题呢?实际上说起来也不难,你可以利用获得焦点事件或者单击事件来处理。因为你获得焦点或者单击时,你可以对当前记录中的某个字段值进行判断,进而做出锁定或者不锁定操作。从结果上来看,此时的操作是对窗体所有记录的操作,但形式上你感觉是对当前记录的操作。
以下这个所编写的子程序,并结合焦点或单击事件来使用就可以达到有选择的锁定子窗体记录的目的:
Private Sub 选择锁定(myctl As Control, B As Boolean)
'功能:有选择的锁定子窗体中的记录
'参数:myctl,作为判断的控件:B=true,myctl锁定,B=false,myctl不锁定
Dim ctls As Controls
Dim ctl As Control
Set ctls = Me.Form.Controls
For Each ctl In ctls
If ctl.ControlType <> acLabel Then
If myctl.Value = True Then
If B = True Then
ctl.Locked = True
Else
If ctl <> myctl Then
ctl.Locked = True
End If
End If
Else
ctl.Locked = False
End If
End If
Next ctl
End Sub
请参见张青同志转发我写的
《面向初学者的窗体功能设计》一文。该文实例中,有你需要的功能及实现方法。
打开窗体设计视图,点击窗体左上角黑色框打开窗体属性,把“允许编辑”、“允许删除”、“允许添加”这三项设为“否”

真诚的感谢诸位热心的老师们,谢谢你们的帮助了。
总记录:10篇 页次:1/1 9 1 :