[ 本帖最后由 fjchan 于 2008-12-8 22:13 编辑 ]作者: Henry D. Sy 时间: 2008-12-8 22:13
把窗体的原代码删掉,把窗体的可编辑属性设为是
然后
Private Sub 命令168_Click()
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
If Left(ctl.ControlSource, 2) = "08" Then
ctl.Locked = True
End If
End If
Next
End Sub
复制代码
另一个按钮,你照着这个方法自己做做看。
[ 本帖最后由 Henry D. Sy 于 2008-12-8 22:17 编辑 ]作者: fjchan 时间: 2008-12-8 22:19
谢谢回答,可是这样的话如果一个选项卡里的数据编辑完了之后点了打印之后,同一个选项卡的下一条记录也不能编辑了。还有我退出来之后再进去,又能再编辑了,没锁住。能再指教下吗?
[ 本帖最后由 fjchan 于 2008-12-8 22:28 编辑 ]作者: Henry D. Sy 时间: 2008-12-8 22:27
所以说你要考虑周全,帮你的人并不知道您的真正用途,只知道你要锁定。
Dim ctl As Control
Private Sub Form_Current()
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
If Left(ctl.ControlSource, 2) = "08" Then
ctl.Locked = False
End If
End If
Next
End Sub
Private Sub 命令168_Click()
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
If Left(ctl.ControlSource, 2) = "08" Then
ctl.Locked = True
End If
End If
Next
End Sub
复制代码
作者: fjchan 时间: 2008-12-8 22:30
高手,Private Sub ÃüÁî168_Click() 是什么字符作者: fjchan 时间: 2008-12-8 22:31
原来是乱码,要刷新下才行作者: fjchan 时间: 2008-12-8 22:37
果然可以,真是谢谢了。作者: Henry D. Sy 时间: 2008-12-8 22:46
帮你写成过程,使另一个按钮也可以调用
Private Sub Form_Current()
LockCtl False
End Sub
Private Sub 命令168_Click()
LockCtl True, "08"
End Sub
Sub LockCtl(bln As Boolean, Optional str As String)
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
If Len(str) <> 0 Then
If Left(ctl.ControlSource, 2) = str Then
ctl.Locked = bln
End If
Else
ctl.Locked = bln
End If
End If
Next
End Sub
复制代码
[ 本帖最后由 Henry D. Sy 于 2008-12-8 23:03 编辑 ]作者: tmtony 时间: 2008-12-9 01:47
好人做到底作者: fjchan 时间: 2008-12-9 21:28
太谢谢了作者: friendship 时间: 2008-12-9 22:34
高水平!