Office中国论坛/Access中国论坛

标题: 面向初学者的窗体功能设计集成 [打印本页]

作者: todaynew    时间: 2008-12-27 13:30
标题: 面向初学者的窗体功能设计集成
经过两个月的Access学习,对窗体设计中的一些常用方法略有收获,现将其集成在一起,可能对其他初学者有所帮助。

窗体中主要包含了文本框的锁定与解锁;按钮的隐藏与显示;子窗体的隐藏与显示;行列的隐藏与显示;行列的锁定与解锁;记录的自动编码、新增、删除;统计子窗体数据;子窗体记录的条件格式;压缩与修复数据库;自动宏;等相关功能。


欢迎Access专家和爱好者增加功能,为广大Access初学者提供示范。


[attach]34099[/attach]

[attach]34100[/attach]

1、加载时,使用子窗体1,学生表全部记录,锁定主窗体和子窗体记录,配置按钮。
Private Sub Form_Load()
Dim sql As String
Me.子窗体.SourceObject = "子窗体1"
sql = "select * from 学生表"
Me.班级ID.Locked = True
Me.班级名称.Locked = True
Me.子窗体.Form.RecordSource = sql
Me.子窗体.Form.AllowAdditions = False
Me.子窗体.Form.AllowDeletions = False
Me.子窗体.Form.AllowEdits = False
Me.隐藏列.Visible = False
Me.展开列.Visible = False
Me.隐藏行.Visible = False
Me.展开行.Visible = False
End Sub


2、关闭窗体时,压缩并修复数据库。
Private Sub Form_Close()
'压缩和修复数据库
CommandBars("Tools").Controls("数据库实用工具(&D)").Controls("压缩和修复数据库(&C)...").accDoDefaultAction
End Sub


3、双击班级ID或班级名称时,解锁。
Private Sub 班级ID_DblClick(Cancel As Integer)
Me.班级ID.Locked = False
End Sub


Private Sub 班级名称_DblClick(Cancel As Integer)
Me.班级名称.Locked = False
End Sub


4、失去焦点时,锁定班级ID或班级名称。
Private Sub 班级ID_LostFocus()
Me.班级ID.Locked = True
End Sub


Private Sub 班级名称_LostFocus()
Me.班级名称.Locked = True
End Sub


5、单击时,使用字窗体1或子窗体2。

Private Sub 更换窗体1_Click()
Me.子窗体.SourceObject = "子窗体1"
Me.隐藏列.Visible = True
Me.展开列.Visible = True
Me.隐藏行.Visible = True
Me.展开行.Visible = True
Me.新增.Visible = True
Me.删除.Visible = True
End Sub


Private Sub 更换窗体2_Click()
Me.子窗体.SourceObject = "子窗体2"
Me.隐藏列.Visible = False
Me.展开列.Visible = False
Me.隐藏行.Visible = False
Me.展开行.Visible = False
Me.新增.Visible = False
Me.删除.Visible = False
End Sub


6、单击时,显示或者隐藏子窗体。
Private Sub 隐藏窗体_Click()
Me.子窗体.Visible = False
End Sub


Private Sub 显示窗体_Click()
Me.子窗体.Visible = True
End Sub

7、单击时,显示或隐藏按钮。
Private Sub 隐藏按钮_Click()
Me.隐藏列.Visible = False
Me.展开列.Visible = False
Me.隐藏行.Visible = False
Me.展开行.Visible = False
End Sub


Private Sub 显示按钮_Click()
Me.隐藏列.Visible = True
Me.展开列.Visible = True
Me.隐藏行.Visible = True
Me.展开行.Visible = True
End Sub


8、单击时,自动编号并新增记录。
Private Sub 新增_Click()
Dim sql As String
DoCmd.SetWarnings no
sql = "INSERT INTO 学生表 ( 班级ID, 学生ID ) "
sql = sql + "SELECT Right(Forms!主窗体!班级ID,1) AS 班级ID, IIf(Max([学生ID]) Is Null,Forms!主窗体!班级ID & '01',Format(Max([学生ID])+1,'000')) AS ID "
sql = sql + "FROM 学生表 WHERE 学生表.班级ID=Forms!主窗体!班级ID;"
DoCmd.RunSQL sql
Me.子窗体.Requery
End Sub


9、单击时,删除指定记录。
Private Sub 删除_Click()
DoCmd.SetWarnings no
DoCmd.RunSQL "DELETE * FROM 学生表 WHERE 删除=Yes;"
Me.子窗体.Requery
End Sub

10、单击时,锁定、解锁、刷新子窗体。
Private Sub 锁定_Click()
Me.子窗体.Form.AllowAdditions = False
Me.子窗体.Form.AllowDeletions = False
Me.子窗体.Form.AllowEdits = False
End Sub


Private Sub 解锁_Click()
Me.子窗体.Form.AllowAdditions = True
Me.子窗体.Form.AllowDeletions = True
Me.子窗体.Form.AllowEdits = True
End Sub


Private Sub 刷新_Click()
Me.子窗体.Requery
End Sub


11、单击时,隐藏或展开列。
Private Sub 隐藏列_Click()
Me.子窗体.Form.家庭住址.ColumnHidden = True
Me.子窗体.Form.联系电话.ColumnHidden = True
End Sub

Private Sub 展开列_Click()
Me.子窗体.Form.家庭住址.ColumnHidden = False
Me.子窗体.Form.联系电话.ColumnHidden = False
End Sub


12、单击时,隐藏或展开行。

Private Sub 隐藏行_Click()
Dim sql As String
sql = "select * from 学生表 where isnull(姓名)"
Me.子窗体.Form.RecordSource = sql
Me.子窗体.Requery
End Sub


Private Sub 展开行_Click()
Dim sql As String
sql = "select * from 学生表"
Me.子窗体.Form.RecordSource = sql
Me.子窗体.Requery
End Sub



[ 本帖最后由 todaynew 于 2008-12-28 18:55 编辑 ]
作者: yrxyyy    时间: 2008-12-28 01:35
想看看
作者: todaynew    时间: 2008-12-28 17:49
标题: 回复 2# 的帖子
[:50]
作者: ycxchen    时间: 2008-12-28 17:54
谢谢分享!
作者: todaynew    时间: 2008-12-28 18:56
标题: 回复 4# 的帖子
[:24]
作者: 13555609005    时间: 2008-12-29 15:06
学习学习
作者: tzh1600    时间: 2008-12-29 17:32
吼嘢[:50] [:50]
作者: todaynew    时间: 2008-12-29 18:01
标题: 回复 7# 的帖子

作者: jiflying911    时间: 2008-12-30 09:57
非常好,谢谢
作者: jiflying911    时间: 2008-12-30 09:57
[:50]
作者: todaynew    时间: 2008-12-30 11:11
标题: 回复 10# 的帖子

作者: 紫风    时间: 2009-2-24 20:50
谢谢楼主!
作者: wjsfeng    时间: 2009-2-24 21:19
好,收藏
作者: swc21    时间: 2009-2-25 16:18
刚入门.很不错!谢
作者: chaojianan    时间: 2009-3-2 16:44
谢谢搂主分享。
好好学习下。
作者: one_l    时间: 2009-5-31 23:06

作者: olivein    时间: 2009-6-10 16:50
好啊哈、
作者: shakamiuu    时间: 2009-6-11 10:54
太强大了
作者: shakamiuu    时间: 2009-6-11 12:10
原来还有这种功能的
作者: divineka    时间: 2009-6-11 13:28
很好。
作者: 听雨    时间: 2009-6-26 17:42
谢谢分享,最近正在学习ACCESS
作者: lkkl66    时间: 2009-6-26 21:52
1# todaynew
好人啊!!!
谢谢提供学习资料!!
作者: Sundy1250    时间: 2009-6-27 11:30
不错啊,学习学习
作者: yyi99    时间: 2009-6-27 16:25
谢谢分享
作者: angpeu_9    时间: 2009-7-20 14:56
学习了。
作者: 风啸啸    时间: 2009-7-20 17:52
学习了
作者: jxncwyhcn    时间: 2009-7-24 15:44
好心很老的版本 和我现在学的不一样
作者: shoupi99    时间: 2009-7-28 09:08
受益菲浅啊,谢谢楼主
作者: wxf2008hz    时间: 2009-7-31 12:03
不错  学习
作者: hdbsc    时间: 2009-7-31 14:11

作者: chinaweapon    时间: 2009-8-2 15:35
非常好,谢谢
作者: elfan    时间: 2009-8-3 15:39
好东西,收藏了。
作者: wzh    时间: 2009-8-3 16:18
想看看
作者: yzt2005    时间: 2009-8-5 08:29
谢谢分享,学习一下
作者: yebbkiss    时间: 2009-8-6 11:19
不错,可是不能看源代码
作者: lymin    时间: 2009-8-6 12:53
谢谢分享
作者: wskbm    时间: 2009-8-7 13:24
能看,把宏改一下。
作者: todaynew    时间: 2009-8-7 15:01
不错,可是不能看源代码
yebbkiss 发表于 2009-8-6 11:19


把关闭窗体事件中的:
CommandBars("Tools").Controls("数据库实用工具(&D)").Controls("压缩和修复数据库(&C)...").accDoDefaultAction
屏蔽掉即可以。

或者直接用Alt+F11打开VB设计界面也可。
作者: sophia670    时间: 2009-8-11 10:37
TKS
作者: ilovshevchenko    时间: 2009-8-22 00:52
谢谢分享 学习了
作者: taofbjty    时间: 2009-9-5 01:01
学习学习,顶了再顶!
作者: yusheng2008    时间: 2009-9-14 10:07
为何不能直接打开编辑窗口,查看。
作者: xxiaoxin321    时间: 2009-10-19 10:59
很全面的例子,谢谢!
作者: benfeng3    时间: 2009-10-19 12:20
慢慢学习~~~~~~~
作者: see000    时间: 2009-10-30 12:29
谢谢
分享
作者: txmsuper    时间: 2009-10-30 20:49
谢谢分享
作者: cashiba    时间: 2009-10-30 20:54
谢谢分享
作者: ch_tao    时间: 2010-2-8 14:50
谢谢分享!
作者: 风清九剑扬    时间: 2010-2-8 15:41
强大
作者: 风啸啸    时间: 2010-2-18 22:59
学习一下,谢谢。
作者: koushuai1176190    时间: 2010-2-19 10:16
爱死你了。
作者: lovehere    时间: 2010-9-7 09:27
为什么今天才看到这个帖子呢
作者: ZHENGLIAN    时间: 2010-9-7 09:49
点新增,子窗体自动增加记录,,不好

作者: shitou1ge    时间: 2010-11-4 14:38
学习中学习啊
作者: zlzklibo    时间: 2010-11-4 23:59
学习了
作者: termisss    时间: 2010-11-15 16:10
老汉是默默无闻的奉献者.
作者: hitmandw46    时间: 2010-11-18 10:38
谢谢分享!学习
作者: termisss    时间: 2010-11-19 11:03
新手,来学习,嘿嘿〉~
作者: szyuer    时间: 2010-12-8 19:46
谢谢楼主.学习一下...
作者: wzh    时间: 2010-12-11 22:18
谢谢分享!
作者: XIEMR    时间: 2011-3-15 20:40
看看
作者: 飓风    时间: 2011-3-15 21:46
唔!很好!赞一个
作者: yyinfo    时间: 2011-4-15 22:35
很好的学习资料啊
作者: VENUSSWF    时间: 2011-4-16 00:18
kkkkkkk
作者: VENUSSWF    时间: 2011-4-16 00:18
gcgvvyhhhjjj
作者: ptlijx    时间: 2011-4-16 08:21

作者: lhaodi    时间: 2011-4-21 23:35
学习学习
作者: lzllt1521    时间: 2011-4-22 15:51
看起来不错,下来学习学习
作者: 蓝天8390    时间: 2011-5-8 20:44
多谢版主,正是我所需要,太好了.
作者: 蓝天8390    时间: 2011-5-8 20:44
谢谢版主,真实用.
作者: 蓝天8390    时间: 2011-5-8 20:45
谢谢版主,真实用.
作者: 蓝天8390    时间: 2011-5-8 20:56
谢谢版主,真实用.
作者: 蓝天8390    时间: 2011-5-8 20:57
谢谢版主,真实用.
作者: 蓝天8390    时间: 2011-5-8 20:57
谢谢版主!
作者: warcheanglee    时间: 2011-10-21 08:50
不错,学习了。
作者: huxinhua    时间: 2012-1-10 13:16
学习学习
作者: by0000    时间: 2012-1-10 13:39
ACCESS一定要用VB语言吗?
作者: xyhecho2002    时间: 2012-1-21 09:26
学习了!
作者: 雷鸣    时间: 2012-1-21 17:22
好东西
作者: bluecard    时间: 2012-1-30 20:52
谢谢分享!{:soso_e179:}
作者: kaniku    时间: 2012-2-6 11:35
从头来起,以前还会做的,搁了两年就全都忘了.
作者: kaniku    时间: 2012-2-6 11:37
恩,这个很全了,基本上窗提的功能都具备了

作者: yzyzyzyzyzyz    时间: 2012-3-14 19:32
不知道我能不能看懂,先谢谢了
作者: 十三    时间: 2015-1-9 17:26
能不能只锁定指定的列呢
作者: zhidao    时间: 2015-1-10 10:58
收藏了
作者: fjh    时间: 2015-1-14 11:27
学习中
作者: sdgtlcy    时间: 2015-1-14 12:13
谢谢分享 收藏学习
作者: 34acc    时间: 2015-6-6 13:44

谢谢分享 收藏学习
作者: tang211    时间: 2016-2-25 08:53
非常好!谢谢!
作者: xxk8077    时间: 2023-3-2 18:25
学习学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3