Office中国论坛/Access中国论坛
标题:
一窗多用,减少窗体设计麻烦
[打印本页]
作者:
jackysu78
时间:
2011-7-12 02:45
标题:
一窗多用,减少窗体设计麻烦
本帖最后由 jackysu78 于 2011-7-12 14:06 编辑
设计一个系统,难免会有一些基础资料需要维护,为了避免设计窗体麻烦,附件方式与大家共勉。
其中有些代码来自论坛,不署名感谢!
另外也有个不是问题的问题,呵呵。即绑定控件的保存和撤消,如附件在设计模式下好象没问题,可在系统运行模式下撤消不起作用,版主有空请指点修正一下啰,不胜感谢!
[attach]46066[/attach]
作者:
wgh3g
时间:
2011-7-12 07:18
看看
作者:
huangqinyong
时间:
2011-7-12 07:32
看看
作者:
xie62
时间:
2011-7-12 07:40
作者:
caoguangyao
时间:
2011-7-12 09:28
楼主的大作,看了后,觉得白花去了我两个银子,不得不说上两句,其它不说,调整大小事件,一个简单的东西,却要画蛇添足,还要去写个函数FormAutoResize(Form As Form, ByRef CltInit As Collection, ByRef Initialized As Boolean),也不知是你自己写的还是抄上去的?
送楼主一个调整大小事件的代码:
Private Sub Form_Resize()
Me.Child13.Width = Me.InsideWidth - Me.Child13.Left
Me.Child13.Height = Me.InsideHeight - Me.Section(acHeader).Height - Me.Section(acFooter).Height - Me.Child13.Top
Me.txtdatasr.Height = Me.InsideHeight - Me.Section(acHeader).Height - Me.Section(acFooter).Height - Me.txtdatasr.Top
End Sub
作者:
roych
时间:
2011-7-12 11:52
本帖最后由 roych 于 2011-7-12 13:27 编辑
太复杂了,每次都得删除旧查询,建立新的临时查询,修改子窗体数据源。个人以为,还不如改为选项组,多加两个子窗体来做。
对于LZ提到的这个不是问题的问题,这里给个不是办法的办法,不妨把一下代码贴入保存记录的按钮上试试:
If MsgBox("是否保存资料? 单击取消将撤销本次输入。", vbOKCancel + vbQuestion, "提示") = vbOK Then
DoCmd.RunCommand acCmdSaveRecord
Else
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdUndo
End If
复制代码
作者:
jackysu78
时间:
2011-7-12 13:56
回复
caoguangyao
的帖子
第一次试试赚钱的滋味,目的不是为了赚钱,呵呵。
调整大小的这个代码我也知道,只是不想每个窗体去修改代码,通用函数自有它的方便。
不管白猫黑猫,捉到老鼠就是好猫。
个人到论坛就是为了学习,学以致用而已。
作者:
jackysu78
时间:
2011-7-12 13:58
回复
roych
的帖子
谢谢!达到目的有很多方法,这个只是其中的一种,这种方法我想还是比较适用基础资料维护数量较少、频率较小的案例。
作者:
roych
时间:
2011-7-12 17:12
我的做法是:对于不太复杂的窗体,采取选项组;过于复杂的窗体,则考虑树状目录(TreeView)。无论怎么说,代码调试并非一件愉快的事情。能不用代码时,我尽量不用。
当然,也只是个人看法而已,至于是否适合大家,我可没说过。
作者:
caoguangyao
时间:
2011-7-12 20:57
"不管白猫黑猫,捉到老鼠就是好猫。"
“白猫黑猫”,也不知是哪只捉到的
本人还是觉得楼主有“虚伪”之态
君子生财,取之有道
作者:
jackysu78
时间:
2011-7-12 21:17
回复
caoguangyao
的帖子
向你学习!
作者:
tanhong
时间:
2011-7-16 21:31
本帖最后由 tanhong 于 2011-7-18 09:56 编辑
jackysu78 兄初衷是好的,也算是一种思考吧。如果我理解得不错的话:jackysu78 兄原本是想复杂问题简单化,探索能让事情简化的途径。
看了兄的实例获益有二:
1、jackysu78 兄创建临时查询的方法有一定实践意义;
2、子窗体随主窗体调整大小的函数有一定参考价值,特别是用集合存放初始窗体状态值的方法。
不过看了jackysu78
兄的实例,我谈几点个人意见:
1、仅就你的实例来说,子窗体中数据源完全可以直接绑定表作做为数据源对象即可,jackysu78 兄却用创建临时查询来做为数据源,的确有点简单问题复杂化之嫌;
2、子窗体随主窗体最大化如仅在涉及一个窗体中的子窗体,写公用函数并非明智;当然,如果是用于多个窗体中的子窗体调整,是可以考量用公用函数,可以“一函多用”也就不为过了。
以上为个人意见,仅供参考!
作者:
roych
时间:
2011-7-17 02:40
回复
tanhong
的帖子
在这个例子里,写临时查询是迫不得已的做法(除非分别建立子窗体),因为字段名和字段个数都有出入,不能直接指定数据源(否则会出现“#名称?”错误)。
——当然全部改为Text1、Text2……TextN,再分别为这些控件绑定则是另一回事了。
作者:
jackysu78
时间:
2011-7-17 15:27
谢谢各位的意见,主要是向大家学习,各位见笑了。呵呵。
代码的复杂与简单,个人确实能力不够,只是一个思路分享。再次感谢!
作者:
tanhong
时间:
2011-7-18 09:59
本帖最后由 tanhong 于 2011-7-18 19:46 编辑
其实,只要思考就会有收获,也无所谓对于错。
之前我所说的,修正一下:如果要查询特定数据做为数据源对象,是必须转为查询或是临时表来做为子对象数据源的,但如果不需要特定数据,直接用表做为子对象数据源,建临时查询就复杂化了。
作者:
yanghua1900363
时间:
2011-7-29 10:28
roych的思路很好 有时间试一试 这样好提高工作效率!
作者:
WFH6898
时间:
2015-12-18 10:02
看看
作者:
WFH6898
时间:
2015-12-19 09:10
谢谢分享
作者:
yaopujie
时间:
2015-12-19 20:55
xuexile
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3