我用access这10年
时 间:2009-08-31 11:26:08
作 者:djtwxj ID:7167 城市:潍坊
摘 要:access+vba+ole几乎可以做任何
正 文:
从1999年开始使用office至今,算来已经10年了。10年树木,100年树人,“人老珠黄”了。人老了,总感觉要写点什么,来回忆过去的点点滴滴。
刚开始使用office时,只是使用WORD来制表格、打印文档。后来调到人事部门,EXCEL也开始用上了。在使用EXCEL的过程中,由于大数据量的限制,开始慢慢对ACCESS感兴趣了。当时主要用来制作工资条。
2000年到了现在的单位做库管,不能想象当时管库竟然没有电脑,干了3个月,老爸老妈掏钱买了一台电脑,晚上电脑就成为我的记帐工具。开始用 ACCESS编写自己的第一个程序“库存管理”。要学会使用工具,首先要入门。没有师傅,就把“电脑帮助”当师傅。我觉得帮助是最好的师傅。其次是论坛,当时的WWW.ACCESSXP.COM我是从尾看到头的。
库存管理,想来比较简单,流水帐+结存+物料编码表就可以了,一个周解决问题,白天在单位用手工帐工作,晚上带回家把手工帐输入电脑。这样工作到2002 年,开始接手盘点,于是开始使用SAP,也配了电脑(幸福啊,再不用晚上工作了)。白天时间多了,把客户表、销售定单加入了。
使用SAP盘点,由于车间得拖后1-2天才能做定单确认,这样盘点时数据就不太准确。不得已,每周把SAP的物料数据导到ACCESS里,在ACCESS处理。BOM表必须建了,还好产品BOM不超过5层,用一个5连查询就可以解决。处理结果再手工复制粘贴或者输入到SAP里。SAP有没有自动功能呢(公司没有本地化支持),放“狗”搜一搜,还真有一个工具ITOLE.EXE的工具可以控制SAP客户端(SAP SCRIPTING没有开放)。用ITOLE的代码录制工具录制了一段操作过程,研究了几天,决定用EXCEL的VBA写一个SAP的假客户端,大概用了1周,基本可以实现数据的自动上传功能。因为是完全模仿键盘操作SAP,所以不用担心谁来找茬。
公司是特殊行业,每年几百万产品,2003年要求每个产品都要有唯一编号来跟踪,车间给产品编号,仓库记录该编号发给哪个客户,很难想象手工操作的效率和准确性,开始考虑由系统自动打印箱标,车间打印记录指定唯一批号对应的特殊编号,仓库发货时,根据批号查询特殊编号,这个功能用了一周时间编完。系统也逐渐完善,根据生产日期,按FIFO自动备货。根据箱标记录,查看收货是否正确。
2004年我做了什么?想起来了,公司用的ACCESS97,查询不能用子表,通常做法是把数据取出放入临时表里,再进一步处理。一天突然心血来潮,把一个含子查询的SQL语句放到ADO执行,呵呵,那种感觉只有恋爱才能相提并论。于是把所有的查询用子查询全部重做了一遍(大概200个),EXCEL使用动态SQL查询数据。
2005年好象没有做过什么。那就长工资吧^0^。
2006年,财务总监(分管IT)找到我,说希望能把SAP数据自动导入到浪潮财务软件里(企业的悲哀,要使用2种财务软件,由中方会计把SAP凭证再输入到浪潮里)。浪潮提供把文本数据导入系统的功能,那么难点在于如何把SAP数据变成浪潮对应科目的文本文件。思路有了,那就去做吧,建浪潮科目与SAP 总帐对应表、浪潮客户与SAP客户对应表、浪潮供应商与SAP供应商对应表,顺便加上英译汉,大概用了1个月时间。还想做完这个就可以到财务兼职做个 IT,可惜,人算不如老板算,上司不放。
这样持续到2007年,开始接手生产计划。库存有了,BOM有了,生产有了,还缺什么呢?预测!那就往销售MM要预测数据吧,根据历史12个月发货记录,把预测分拆成详细的产品(客户固定,产品比例固定)。库存+生产+已销售-预测-安全库存=我要给车间的生产单,简单。生产单放到系统,车间计划员运行拉料单,产生原材料需求。
2008年,开始讨厌不断增加功能,同时增加代码、窗体、报表的编写方式。不断再想,要是有一种通用窗体和报表来实现不同的功能就好了。想到SAP增加新功能时,不需要升级前端,由程序员把后台程序升级就行了。ACCESS可以导入代码到模块中,用这种方式?不行,MDE是不能更改代码的。怎么办呢?ACCESS的控件和窗体各种事件里可以使用自定义函数,事先编好函数,然后让控件和窗体调用不同的函数应该可行。一试,还真行,把函数当成一条条记录,循环读取记录,执行函数,天哪,还真解决了自动升级的问题。企业所做的工作,无非是判断、赋值、循环等工作,每增加新功能,就把它分拆成相应的函数。这样所有的功能用了10个窗体、2个报表、10个模块,20 个函数。只用了树控件做菜单,前台ACCESS97,中间采用ADO,后台ACCESS、SQL。
2009年,SAP升级了,SCRIPTING功能也打开了,ITOLE在MIGO时,力不从心,看来又得重写代码了。。。。。。
2009年7月终于写完了VBA自动控制SAP的代码了。
过去10年的经历,ACCESS经历了3个阶段。
一:基础。建表和查询,用了3年
二:提高。建窗体,写VBA代码,用了4年
三:升华。建类模块,写通用代码,用了3年
正所谓“新3年,旧3年,缝缝补补又3年”。没办法,基础差,不是专科出身。一、二参考自带的northwind数据库,慢慢学习就可以了。我没找到窍门,销售部门的PLMM就是这样编写自己部门的销售管理数据库,大概一个来月就有模有样。三得靠个人能力+悟性+修行+熟练的SQL。
如果不考虑华丽的界面,ACCESS97是最好用的,有些东西还就只能在97下用,就是97莫名其妙的CPU老高。
10年中遇到的最糟糕的事当然是数据丢失。ACCESS好象没那么娇气,10人同时操作,速度还可以。丢数据应该是局域网问题。2008年某一天,正在使用,突然提示不可识别的数据库格式,服务器上数据库只有可怜4K大小。之后每个月都提示数据库错误,实在找不出原因。后来公司升级网络,问题才得以解决,现在分析以前网络带宽低,工作站自动获取IP地址不能持久连接,造成数据库连接突然中断,当正在写数据时,灾难就会发生。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Inputbox输入密码打开查...(12.23)
- 【Access Dsum示例】...(12.16)
- Inputbox输入密码打开窗...(12.13)
- 【Access DCount示...(12.02)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
学习心得
最新文章
- 用VBA代码自动引用ADO(Win...(12.27)
- 用VBA代码自动引用DAO(Win...(12.24)
- Inputbox输入密码打开查询的...(12.23)
- Access工资计算工具源码分享:...(12.20)
- Access快速开发平台--让li...(12.18)
- 【Access Dsum示例】用D...(12.16)
- Inputbox输入密码打开窗体的...(12.13)
- Access快速开发平台通用查询条...(12.10)
- Microsoft ActiveX...(12.09)
- 人事管理系统;基于Access快速...(12.07)