Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 程序人生

《教务流程管理系统》菜鸟的编程学习心得

时 间:2011-08-01 11:25:34
作 者:李金忠   ID:13894  城市:厦门
摘 要:  说来从参加培训到现在开发也有1年多了,期间拜了好几个师傅, 首先要特别感谢一直指导我的老师们:竹笛老师/刘大师/钱大师/黄大师/小褚老师,几位老师在我学习期间给予了我很大的帮助,特别是刘大师,他的耐心和实力让我深感佩服,我从他那边挖了很多模块过来,在这里表示最衷心的感谢!...
正 文:

      说来从参加培训到现在开发也有1年多了,期间拜了好几个师傅, 首先要特别感谢一直指导我的老师们:竹笛老师/刘大师/钱大师/黄大师/小褚老师,几位老师在我学习期间给予了我很大的帮助,特别是刘大师,他的耐心和实力让我深感佩服,我从他那边挖了很多模块过来,在这里表示最衷心的感谢!

     2010年7月,通过小褚老师的介绍我参加了access软件网的培训.因为我的性格问题,我一直急于速成,学习期间也是断断续续,导致学习的过程中犯了很多捡了芝麻丢了西瓜,不明所以就照搬代码的问题.首先说个态度问题,我觉得要把开发软件这事儿当成一个大事儿来看,要持之以恒的去想怎么开发…多杀一些脑细胞还是得到了以下一些经验教训.

1. 开发文档很重要
我这人特别懒,最懒得写文档,除去表设计,我们部门名为教务,其实我们是搞培训的.在许多资源有效性方案如教室/住宿/师资等的安排上是比较讲究细节的,这些地方的构思我之前没有想好,就开始做.结果导致实际应用中不断地在修改,修改完也没有留下开发文档,一个月过去再翻之前的代码实在痛苦~~建议要有个自己的备忘录,用word档案.不光是表设计,简单的功能设计,一些核心模块的实现方式要记录下来.

2. 不会写代码不可怕,不写注释是万万不可的
很多代码我也是从咱们这个Access软件网上download下来改为己用的.对于这种修改来的代码,当时改了是知道了,但是以后再改的时候又要重新看变量名称啊,个别一句两句代码是干什么用的,要重新来规划这些事情就很麻烦了.如果添加了详细的注释,我想对我们这些菜鸟来说还是很有用的,把你抄来的或者是你灵感突现写出来的代码都好好注释下,后面维护会好很多.

3. 要注意代码重用~
俺们都是不专业的小菜,恨不得啥东西都是现成的,不用重写, 想多偷懒.其实你想想很多东西在开发平台都是可以重用的,比如新增窗体/修改窗体这些东西,按着培训的报销教程和变速箱教程的说法,容易模仿和复制.那为啥你自己的东西不能重用?在设计程序的时候,如果遇到了好用的代码,一定要想法设法搞成其他地方也可以通用的.比如我在main窗体放了两个筛选框年份和月份用于当前窗体的日期筛选.
 
当时也就是做了这一个窗体的筛选而已.但是我后来想想其实可以给其他窗体也加这么一个功能,于是我就按黄大师给我的代码改了一下:
Private Sub 年份_Click()
    Dim SQL As String
    SQL = "1=1"
    SQL = SQL & " and year(报到时间)=" & Me.年份 & ""

    Me.frmChild.Form.Filter = SQL
    Me.frmChild.Form.FilterOn = True
    Me.月份.RowSource = "SELECT DISTINCT Format([需求信息表].[报到时间],'yyyy-mm') AS 表达式1 FROM 需求信息表 where year(报到时间)=" & Me.年份 & "; "
    Me.月份.Requery
End Sub

Private Sub 月份_Click()
    Dim SQL As String
    SQL = "1=1"
    SQL = SQL & " and format(报到时间,'YYYY-MM')='" & Me.月份 & "'"

    Me.frmChild.Form.Filter = SQL
    Me.frmChild.Form.FilterOn = True
End Sub

经过这么一修改,我所有的窗体都能用这个功能了,相当于拓展了这个平台的通用功能,少写了不是一丁点代码!

类似的还有我之前上网找的一个查询功能,如下:
 

为了使他通用,我请刘大帮我写了一段代码.
Private Sub查询_Click()

    If Nz(Me.关键字) <> "" Then
        Me.frmChild.Form.Filter = GetFieldNames(Me.frmChild.Form.Recordset) & " Like '*" & Me.关键字 & "*'"
        Me.frmChild.Form.FilterOn = True
    Else
        Me.frmChild.SetFocus
        DoCmd.ShowAllRecords
    End If
End Sub
这样就可以在任何main窗体模式使用这个查询功能啦.

4. 报表的设计~通通搞成excel导出模块
我30几个报表的设计全靠刘大师这个模板了,推荐一下.大家可以去研究下,对报表苦手来说    非常有用!
http://www.accessoft.com/article-show.asp?id=5364

5. 公告和信息交流功能,也是刘大师作品
http://www.accessoft.com/article-show.asp?id=5414
刘大帮我把这个东西集成到我的的软件里了,比QQ更规范的公告和聊天工具,很有用!

6.说了这么多,其实我的东西还没完全做完,可以将就用了..人生最痛苦的事情就是领导的软件需求经常变..领导一句话, 代码写到手抽筋,领导也是在没看到你东西情况下,千奇百怪要求,看到你东西,他的灵感又来了,真是恨自己知识不够~以上信息,作一点分享,自己的编程水平还很差,很多代码我也不会写,只会照葫芦画瓢,还请各位老师多多指教,我一定虚心学习,争取早日让软件全部上线..
单位数据比较敏感,这里就只能附部分作品截图

 



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助