Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

窗体控件可用不可用问题

Jerry_Q  发表于:2009-09-12 16:03:51  
复制

我想让窗体中的Parent Details只在左边Date of birth小于1993的时候可用~其余的时候不可用~请问应该怎么实现?刚刚开始学access~多谢

 

Top
Jerry_Q 发表于:2009-09-12 16:06:12
点燃一支烟 发表于:2009-09-12 16:25:08

Private Sub DateOfBirth_BeforeUpdate(Cancel As Integer)
If Year(Me.DateOfBirth) >= 1993 Then
MsgBox "您输入的年份必须小于1993!"
Cancel = True
End If
End Sub

 

在该控件的更新前事件中写上述代码



点燃一支烟 发表于:2009-09-12 16:31:25
看错了,呵呵

点燃一支烟 发表于:2009-09-12 16:38:27

Private Sub DateOfBirth_AfterUpdate()
If Year(Me.DateOfBirth) >= 1993 Then
Me.tblParents_ParentID.Enabled = False
Me.ParentLastName.Enabled = False
Me.ParentFirstName.Enabled = False
Me.ParentPreferredName.Enabled = False
Me.ParentAddress.Enabled = False
Me.ParentPostalCode.Enabled = False
Me.ParentTelephone.Enabled = False
Me.ParentCellphone.Enabled = False
Else
Me.tblParents_ParentID.Enabled = True
Me.ParentLastName.Enabled = True
Me.ParentFirstName.Enabled = True
Me.ParentPreferredName.Enabled = True
Me.ParentAddress.Enabled = True
Me.ParentPostalCode.Enabled = True
Me.ParentTelephone.Enabled = True
Me.ParentCellphone.Enabled = True

End If
End Sub

 

 

Private Sub Form_Open(Cancel As Integer)
Me.tblParents_ParentID.Enabled = False
Me.ParentLastName.Enabled = False
Me.ParentFirstName.Enabled = False
Me.ParentPreferredName.Enabled = False
Me.ParentAddress.Enabled = False
Me.ParentPostalCode.Enabled = False
Me.ParentTelephone.Enabled = False
Me.ParentCellphone.Enabled = False
End Sub



点燃一支烟 发表于:2009-09-12 17:16:39

或:(这样简练些)

Private Sub DateOfBirth_AfterUpdate()
Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox And ctrl.Tag = "Parent Details" Then
  If Year(Me.DateOfBirth) >= 1993 Then
       ctrl.Enabled = False
          Else
       ctrl.Enabled = True

    End If
End If
Next
End Sub


Private Sub Form_Open(Cancel As Integer)
Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox And ctrl.Tag = "Parent Details" Then
       ctrl.Enabled = False
End If
Next
End Sub

 

注意:1、需先在窗体中的Parent Details涉及的每个文本框的控件的设计视图属性里面的“标记”设为:   Parent Details    ;

      2、在DateOfBirth文本框的更新后事件中写第一段代码;

      3、在窗体打开事件中写第二段代码;

 



点燃一支烟 发表于:2009-09-12 17:19:18
符鸿敏 发表于:2009-09-12 17:46:16
符鸿敏 发表于:2009-09-12 18:01:57
dengshaobin 的答案胜人一畴

Jerry_Q 发表于:2009-09-13 08:38:20
多谢两位老师~还想请问一下在哪里能找到相关代码使用的教程?十分感谢

总记录:9篇  页次:1/1 9 1 :