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提到的这个不是问题的问题,这里给个不是办法的办法,不妨把一下代码贴入保存记录的按钮上试试:
  1. If MsgBox("是否保存资料? 单击取消将撤销本次输入。", vbOKCancel + vbQuestion, "提示") = vbOK Then
  2. DoCmd.RunCommand acCmdSaveRecord
  3. Else
  4. DoCmd.SetWarnings False
  5.     DoCmd.RunCommand acCmdUndo
  6. 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