Office中国论坛/Access中国论坛

标题: 欢迎讨论程序代码优化的问题——请教版主和各位朋友 [打印本页]

作者: 简    时间: 2008-4-24 20:36
标题: 欢迎讨论程序代码优化的问题——请教版主和各位朋友
为了更好的学到东西,也为了便于理解,我以我这个数据库为例子,请大家相互交流~~~


密码:
Admin:111
用户:222

窗体:
装配表frm102ZP
模架frm102ZPmojia
支承机构frm102ZPzhichen
紧固件frm102ZPjingujian

装配表:
功能是显示模架与支承机构,紧固件之间的关系。
双击模架,或支承机构,或紧固件,可以查看该模架,支承机构,紧固件的具体信息。
在添加新关系时,如果输入的模架,支承机构,或紧固件不存在,则打开相对应的窗体进行添加。

模架/支承机构/紧固件:
功能是对模架/支承机构/紧固件进行添加,编辑,删除和查看。

如果进行优化,应该优化哪些部分哪些内容呢?该如何优化呢?如果做成公用函数,模块之类的,又应该如何做呢?

我个人认为可以优化的部分:
1)模架/支承机构/紧固件的添加按钮,编辑按钮,删除按钮,以及备注查看和备注更新按钮
2)装配表/模架/支承机构/紧固件的当前登陆部分的代码,能否做成过程或函数
3)在装配表添加关系时,该模架//支承机构/紧固件是否存在,如果不存在,则打开相应的窗体进行添加
4)模架/支承机构/紧固件在添加编辑时,检查模架/支承机构/紧固件是否重复;
5)模架/支承机构/紧固件的筛选和清空

以上部分是不是可以做成函数或过程之类的模块呢?

另三个问题:
1On Error GoTo errorhandler错误提示主要应该用在哪些地方?像程序中组合框得到焦点就展开,某个控件得到焦点则窗体可编辑,失去焦点则不能修改等,这些是不是没必要用On Error GoTo errorhandler呢?

2.以模架窗体为说明,子窗体这部分模架代号这列的背景想用浅蓝色来表现,如图,虽然在背景我修改了,但实际效果还是没有出来,这是为什么呢?

3.像这种数据库,窗体是多好些,还是少好些,是一个窗体复杂些好(即一个窗体可以表现多个窗体的功能和内容,但代码设计明显要复杂些),还是简单些好呢?

4.像模架窗体中,“Φ”和“×”是我经常要输入的,我如何编程来快捷输入(有快捷键最好),而不必转换输入法里来找这两个符号呢?
作者: 简    时间: 2008-4-24 20:39
再把图附上,如何让子窗体中的模架代号如图所示呢?

[attach]29855[/attach]
作者: 简    时间: 2008-4-24 20:45
[attach]29856[/attach]
作者: 简    时间: 2008-4-24 20:54
希望子窗体中的模架代号如图所示:

[attach]29857[/attach]
作者: 简    时间: 2008-4-24 20:58
我发不了图片,好奇怪呢,说什么路径不对,防火墙又怎么的~~~
作者: chenwm1973    时间: 2008-4-24 21:23
输入300×280×270或Φ48×410时,可以自定义一个函数来规范格式。
如300 280 270,三个数之间加一个空格,利用自定义函数来加入×
若没有小数点,Φ48×410可以 .48 410 这种形式, Φ可以用小数点代替。
在输入回车键后,通过触发函数,来使输出达到所要的效果。
作者: chenwm1973    时间: 2008-4-24 22:03
此例只是说明(形如40*300*500——40×300×500)的转换。仅作参考。
作者: 红尘如烟    时间: 2008-4-24 22:26
1.On Error GoTo errorhandler错误提示主要应该用在哪些地方?像程序中组合框得到焦点就展开,某个控件得到焦点则窗体可编辑,失去焦点则不能修改等,这些是不是没必要用On Error GoTo errorhandler呢?
(On Error GoTo 语句一般用在需要向使用者提示的地方和发生不能预料的错误的地方)

2.以模架窗体为说明,子窗体这部分模架代号这列的背景想用浅蓝色来表现,如图,虽然在背景我修改了,但实际效果还是没有出来,这是为什么呢?
(如果只是想简单地改变某个字段的颜色,可以把子窗体设为连续窗体,改变字段所绑定的控件颜色即可;如果想满足某种条件时改变颜色,可以用条件格式)

3.像这种数据库,窗体是多好些,还是少好些,是一个窗体复杂些好(即一个窗体可以表现多个窗体的功能和内容,但代码设计明显要复杂些),还是简单些好呢?
(根据实际需要来定,经验丰富的话可以用少些窗体,否则就多用窗体好了,不然容易出现不能预知的错误)

4.像模架窗体中,“Φ”和“×”是我经常要输入的,我如何编程来快捷输入(有快捷键最好),而不必转换输入法里来找这两个符号呢?
(可以将窗体的KeyPreview属性设为True,然后在窗体的OnKeyDown事件中捕捉键值,如果是特定的键值则向当前获得焦点的输入控件中添加预设值)
作者: goto2008    时间: 2008-4-25 08:22
学习。。
作者: 13912668356    时间: 2008-4-25 08:26
学习。。
作者: 简    时间: 2008-4-28 20:12
先谢谢chenwm1973和红尘如烟两位朋友。

问题一明白了。
问题二看来我达不到预想的如图的结果了。
问题三明白了。
问题四chenwm1973朋友的例子我也看了,我要输入的位数并不一定是三位,也可能是两位呢。

另外,能否做成函数或过程之类的模块,有没有朋友能帮我以这个数据库做个例子呢?
作者: 红尘如烟    时间: 2008-4-29 14:41
自定义快捷键输入的例子
[attach]29930[/attach]

[attach]29931[/attach]
作者: 简    时间: 2008-5-1 23:52
谢谢红尘如烟,你的例子基本是我想要的效果,但有一点就是,如果我输错了或者是输漏了,你这个快捷键的内容就总是放在最后,而不能放在光标指定的位置上。比如说,我本来说应该输入“35X34X34”,结果我输成“3534X34”,于是我把光标放在5后按下快捷键,结果插入的“X”被放在最后,即“3534X34X”。

另外我想再问问,这个例子能不能做成函数模块之类的,在各个窗体中多次调用呢?如果可以,又该如何做呢?
作者: goto2008    时间: 2008-5-3 10:40
向红尘如烟学习。。。。
作者: goto2008    时间: 2008-5-3 10:46
原帖由 于 2008-5-1 23:52 发表
另外我想再问问,这个例子能不能做成函数模块之类的,在各个窗体中多次调用呢?如果可以,又该如何做呢? ...


我也很想知道。。。。
作者: xuwenning    时间: 2008-5-5 08:29
我也很想学习;本来还有2个金钱下载7楼的附件只下载了attachment.php文件后金钱为0了

好无奈啊[:27]
作者: xuwenning    时间: 2008-5-5 08:29
慢慢苦金钱吧
作者: 红尘如烟    时间: 2008-5-5 09:21
原帖由 于 2008-5-1 23:52 发表
谢谢红尘如烟,你的例子基本是我想要的效果,但有一点就是,如果我输错了或者是输漏了,你这个快捷键的内容就总是放在最后,而不能放在光标指定的位置上。比如说,我本来说应该输入“35X34X34”,结果我输成“3534X3 ...


函数如下:
Function CustomerShortcutKey(KeyCode As Integer, Shift As Integer)
On Error Resume Next
    Dim intOldSelStart As Integer
    Dim ctl As Control
    Set ctl = Screen.ActiveControl
   
    If Shift = acAltMask Then
        intOldSelStart = ctl.SelStart
        Select Case KeyCode
            Case vbKeyQ
            ctl.SelText = "Φ"
            Case vbKeyX
            ctl.SelText = "×"
        End Select
        ctl.SelStart = intOldSelStart + 1
    End If
End Function

在窗体的KeyUp事件中调用:
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    CustomerShortcutKey KeyCode, Shift
End Sub
[attach]30011[/attach]
作者: chenwm1973    时间: 2008-5-16 14:23
学习..........[:50] [:50] [:50]




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