一、问题描述:
因工作原因,接手了工资管理,涉及2000多人的工资,每天主要任务就是处理各单位的人员调入调出,增资,停发,保险扣除等,还要兼顾工资经费测算,人员编制情况,因为情况具体而复杂,变化频繁,现有的工资软件感觉不能满足需要(单位买的)。平时都是用现有的软件汇总报送银行工资表,然后再自己设计excel表格对照检查,最后再制作excel表格计算补发工资经费,拿编办审核手续一一核对编制人数变化,很麻烦。二、求助内容:
因此想自己做一个完全结合我具体工作的人事工资管理软件。对编程有兴趣。只在大学时考3级证书的时候学过VB,数据库没有接触过。编程基础几乎为0,在这种情况下,想要做出一个能用的人事工资管理软件,都需要学那些编程知识?学到什么程度?学的顺序是什么?需要学多长时间(白天上班,晚上基本都有空)。请各位前辈指教。
谢谢

解决方案 »

  1.   

    接你的描述,如果想做一套你自己可以用的工资管理,难度太大了吗?不如自学一下access,之后用access与excel一起做一个实用一些的工具,还是有可能的!!
      

  2.   

    平时都是用现有的软件汇总报送银行工资表,然后再自己设计excel表格对照检查,最后再制作excel表格计算补发工资经费,拿编办审核手续
    这一部分编程工作拆分可以有以下几个部分:
    1、EXCEL模板定义
    2、通过VB读取EXCEL模板,并另存为EXCEL文档
    3、在ACCESS里建立与EXCEL模板完全对应的表结构
    4、读取第三方系统生成的EXCEL,以CELL为单位,对应填充到模板CELL内
    5、通过程序保存或打印,新生成的EXCEL文档
    6、保存后的EXCEL可以在审核部门打开,或者给审核部门发送提醒。
      

  3.   

    建议你买现成的软件来运用,比如用友、朗新等,要不就找人定制开发一套软件,这样的好处是能及时解决你的应用管理工作上压力问题,而且还会有专业的人帮你维护软件问题,毕竟要开发一套完整而且没有什么 bug 的管理软件不是一时半会儿就能搞定的事情,因为这涉及到很多架构上的问题,而架构设计就不是普通程序员能干的事情,需要有比较多的经验和比较广的知识面。因为如果架构出错,可能对影响很大,甚至导致很严重的问题,所以即使很多有两三年基础的专业程序员也未必能独立做出什么好东西来,而且还要经过长时间的测试、修改、补漏等过程才有可能可以正式投入使用。如果你只是管理工作上需要这种产品,建议你还是不要自己这么弄。但如果你是个人兴趣,你可以买一些书回去看看、练练、也不用讲究什么项目先,先把基础学好,比如基本的语法、函数、对象等都搞清楚,然后肯一下MSDN,多到网上下点范例来看,这些过程会对你学这方面的东西起到很大的帮助。
      

  4.   

        危言耸听吗?我不觉得,我手下也有几个程序员,也有几年基础,运用各种语言的都有点,但我不觉得他们有多少个在这种阶段能独立完成个能正真用起来的这种程序,就比如数据建库,光是设计数据库结构都是一门学问,没有一定经验和模块的人,数据结构的反复修改过程是少不了的,即使是有一定经验的开发人员,也不可能完全避免这样的改动,然而每一次进行表或字段的修改都会牵动很大,甚至可能颠覆应用管理流程。而且现在管理都走网络,甚至还有走广域网的,这个网络方案又是个问题。对于网络程序而言,还讲究安全和稳定性,别说初学者很难弄出什么好东西,就是很多所谓的高手也未必能搞定。还有UI,也未必是个简单的活。更别说整合这些技术然后搞清楚流程、细节等,比如数据备份 、海量数据操作、存储过程...诸多应用。当然,可以很单纯的想“不用去考虑这么多,能用起来就可以。”但这个能用起来的变数太大,这么个搞法最后也终会导致没法用起来。
        因为很可能是花了很长时间去自己开发,弄出来个 bug n 多的程序,搞不好在金额里输入英文也会崩溃掉,即使某个数值有多个小数点也可以存在这种事也是预计之内,就算不去计较开始用了,也是一边改数据结构一边改程序的用,最后搞到录入的数据乱七八糟,还是得回头去用电子表格或原来的管理软件来做所谓的管理工作,这样个做法,还不如踏踏实实从头学的效率高,安安心心的拿来用更稳当。
      

  5.   

      因为很可能是花了很长时间去自己开发,弄出来个 bug n 多的程序,搞不好在金额里输入英文也会崩溃掉,即使某个数值有多个小数点也可以存在这种事也是预计之内,就算不去计较开始用了,也是一边改数据结构一边改程序的用,最后搞到录入的数据乱七八糟,还是得回头去用电子表格或原来的管理软件来做所谓的管理工作,这样个做法,还不如踏踏实实从头学的效率高,安安心心的拿来用更稳当。====================================================================================如果这样立论,那什么程序也不要搞了。哪一个程序不需要 Debug?大家都不写,“现成”的从哪来?你的程序员很多东西做不出来,很重要的是不熟悉业务流程。实际上,对业务的熟知比编程技术更重要。对于想学习的人来说,天下无难事。就楼主的需求来说,所需的技术并不复杂,不要被人吓倒。
      

  6.   

    自己开发一个适用自己的到是不可以,不过前提是辅助自己工作的。建议你可以深学下VBA,这个对今后的工作变更会有好处,VBA很强大很犀利的东西
      

  7.   


    有个叫比尔的,当初在车库里搞第一个磁盘操作系统的时候,也称不上“职业”程序员。人家楼主确定的应用,搞什么动态字段?我讲过的,一个北京的业余爱好者,弃职投身去搞酒店软件,也早就成功人士了。当年第一款软件就卖到了希尔顿,而且一次购了两个 License。谁是天生的“职业”程序员。你随便拉个“职业”程序员出来,都能写楼主适用的工资软件、希尔顿愿意买的酒店软件?
      

  8.   

    以少数人的成功经历的确可以激发很多人的斗志,甚至可以进行自我斗志的激发,对于长期进行技术工作的大多数人来说,这种斗志的激发可以让人有了更多“坚持”下去的动力,甚至还可以为此“熬”过一个个的难关一直坚持下去。但是最终能“成功”并能成为佳话的人还是少数的。从成功学上来讲,多数能成功的人需要在适合的时间、地点、机遇、运气下拥有相应的资源并做出正确的事情才有可能取得成功。如果只是努力、坚持就可以成功,我想全中国起码有过半的人在经济上都可以说是成功人士了。当然,我也并不是说不要拥有梦想、不要憧憬美好的结局,我只是想说:“现实一点、务实一点”,毕竟路也是一步一步走出来的,日子也是一天一天过过来的,不可能一步登天,也不可能瞬间就到美好的未来,把当下的事情做好再计划将来,有机会再慢慢实施美好的计划。不然不但未来把持不好,甚至连当下都会收到影响。对于技术学习而言,如果心存那种一步登天的想法搞下去,也做不好技术,甚至会浪费很多时间。我记得我曾经买了一本书,老是很急于搞懂我想了解的技术,所以在看书的时候总是直接翻到后面去研究我想弄懂的技术,总认为自己可以搞懂并应用起来。虽然也能读懂一些内容,但是还是研究了好久都没真正的弄明白,有些甚至是抄袭了书上的部分代码直接拿来用就可以了,计算和程序原理可以说完全不理解,还自以为是的和别人说我掌握了XX技术实现了XX功能。就这样,这本书时不时翻一下过了5-6年都没真正的搞懂,后来有一天,我又翻起这本书,我就想,为什么这么多年都没真正的搞懂这本书呢,真的有那么难吗?于是我就一页一页的读,一个实验一个实验的去做,一个小结一个小结的总结,结果不到一个月,那本书可以说完全吃透了,到现在只要碰到相关的技术问题,我都可以很轻易的记起相关的技术说明在那本书的大致什么位置,还会想起当时是如何实验和如何理解的。我上面说“如果心存那种一步登天的想法,也做不好技术,甚至会浪费很多时间。”就是源于我的这种经历。我当初选择这种技术行业,就是因为“学海无涯”,我可以一辈子都不缺学习的目标,因为知识实在太多了。这种学习并应用的“过程(可以理解为一辈子的时间)”我很享受,所以我才选这种行业。但反过来看,这个行业因为有那么多东西要学,而且高手那么多,可以想象,想单纯从技术上取得成功,并把这种技术成功转换成经济上的成功该有多难?如果目标是想在经济上取得成功才来走技术路子绝对是错的,因为真正赚钱的不是技术,而是营销、管理、策划、以及人脉和机遇。而这些也有这些行业上的专业知识和手段,要掌握也需要时间和实践的。相对来说,只要有钱,就不怕没技术,只要有好的策划案、高效的执行团队、一定的资金,赚钱可以说是必然的。那时候如果说要技术,只要肯花钱,多牛的技术支撑都可以找到,这才是赚钱的正路,而不是想着自己搞点什么小技术等人收购或与人合作,从运营上看,这是把命脉交给别人掌控,即使集齐所有的幸运点让你成事了,那所谓的成功也不会有多厉害,因为这种成功经不起风浪,非常的脆弱。
      

  9.   

    动手写吧...
    2003年的时候公司要出租光碟,这事落在我头上,当时我也不懂编程,先用excel,后来用access,因为种种原因,看似简单出租管理,却和现在的楼主一样感觉很麻烦...于是最终学起了VB,学VB是因为人人说它简单易学,而且多少有点VBA基础...
    动手起来困难会很多,就看你的学习毅力和学习能力了,先找本数据库编程实例的书看看,然后一定要动手写,不明白的就针对性的翻书,再不明白,或者有解决不了的问题找论坛提问...反正就是理论到实践,实践到理论的反复...
    我用了大半年时间,这个公司专用的光碟出租程序就可以用于日常出租管理了,并在使用中慢慢的完善...用现在的眼光看,无论架构和代码,这个软件写的真是不能看,呵呵,可实实在在的是它在应用中切切实实的起了它该起的作用...也让我从此迷上编程...
    感慨楼主现状貌似我当年,随便两句,仅供参考,呵呵...
      

  10.   

    可以从网上下一个软件来看看先,看人家是怎么做的.
    框架可以模仿,界面也不需要漂亮.
    一步一步的做,遇到不懂的,可以上CSDN来问,或者搜索下BAIDU.
    能完成最简单的界面之后,其他的东西以后慢慢就会了.不过首先你要搞清楚你能不能完成的了这些工作,有时间也不定完成的了,什么东西都要靠自己.
      

  11.   

    兄弟,你不用跟我急,我也没指名道姓的说你什么呀,大家在网上阐述一下自己的观点,这也算是讨论呀,何必这样说话呢?
    对于楼主的问题,我不过是从两个方面给他建议:
    1、目标是解决工作上的问题
    2、目标是为了兴趣爱好
    我只是提供了这两种方向的解决方案而已。后来发现你的开发观点独特,就和你讨论一下这种观点问题而已。我说起经济上的观点也是源于你说的:“我讲过的,一个北京的业余爱好者,弃职投身去搞酒店软件,也早就成功人士了。当年第一款软件就卖到了希尔顿,而且一次购了两个 License。”。这是你先以这种以经济上为标准的成功理念为题来讨论,别人以营销管理来回应你有什么错呢?
    其实就我个人来说,属于那种我说的为了上等牛肉养牛那种,就比如我现在做的事情,就是在自己写操作系统、驱动、编译器、数据引擎、甚至还在研究多种CPU架构,包括51、plc、avr、arm、mips、powepc、x86、x64...等架构与开发。虽然不一定能有多大成绩,也不太可能能马上赚多少钱,但我很享受这种学习研究的过程。当然,以我的经历而言,做过的工作不单是纯技术,我还搞过多种管理,也搞过多种项目运营,在生活上也碰到过很多次的起起落落,所以在谈论“赚钱、成功”这个话题的时候我也谈出很多个人感想。但是我知道,当有工作的时候,遇事情先把工作做好再想别的事情这种态度是肯定正确的。对于理想或机遇这种事情,在工作的时候尽量以工作为主,当时机成熟的时候再去谈理想和兴趣才是正确的。我一直也是在阐述我的这种理念,想劝告楼主以解决工作上的问题为先,再自己慢慢脚踏实地的一步一步学习自己喜欢的技术。
    但是,这并不代表我的兴趣是在赚钱,我只是知道如何解决问题,解决问题的理论依据是什么而已。至于我的学习方法如何,这很难说,因为每个人的际遇不同、环境也不同、学习方法当然也不同,是好是坏就更难说了,因为再怎么样我现在在软件开发上也掌握了多门语言,包括basic、c/c++、asm、java...等多种开发语言,当然也了解了很多从高层到底层的技术方法和理念,硬件上也掌握了不少技术,包括弱电、强电、模拟、无线、射频等等技术都有接触和应用过。如果说我的学习方法正确,我也觉得很多地方浪费了很多时间,绕了很大的弯子,但如果说错误的,那也不竟然。因为即使绕弯子,也会在绕弯子的路上得到些什么,比如别人没见过的风景、别人不知道的讯息,这种得失很难判断,因为这种时候可能练就你一身的研究能力而不单是学习能力。当然,如果你不想和我讨论,那我也没必要和你说下去,就像你说的,人是各种各样的。
      

  12.   

    我来说点实际的,你这个系统吧说难也难,说简单也简单,要清楚业务流。但是由于跟钱打交道,而且你需要管理的帐户什么的挺多挺杂;你的系统要强壮,要注重备份。1,明确开发目的,是为了解决问题还是个人学习。分个主次,如果解决问题为主那就当作一个工程好好做成本预算,风险分析等等。1,计算成本,你有多少时间开发自己的系统?
    2,系统测试过程,是不是有系统正在运转
    3,你的系统如何跟当前系统交接
    4,交接后两个系统平行运转一定时间,看看你自己的系统是不是有漏洞
    5,如果你的系统突然挂掉了怎么办,有没有备份修复等等,是否影响正常业务
    开发过程
    比较关键的是你的一些业务流牵扯到会计业务知识,比如工资增补税务处理;你有没有业务知识或者是否有途径获取业务知识。
    如果你是一个会计专业,顺手做编程的话那还好办。反之,得找个会计一起干。都需要学那些编程知识?1,确定编程语言平台,你是要winform还是web.你既然发到VB,不知道是不是就确定了用VB了,如果你考虑到界面优美等等的话,用.net的吧,以后移植扩展也方便。2,选择数据库,简便的话access就够,大一些的话sql server。别的边角料,随用随学。
    别忘了申请开发经费,.Net,sql server都不是免费的;免费的话走java,mysql这条路学到什么程度?
    学无止境
    学的顺序是什么?
    1.从业务逻辑拆分开始,把每条逻辑写下来,最好能画成流程图;然后组合这些业务逻辑,找到之间的关系,最好能画成关系图
    2,建立关系数据库
    3,逐模块开发这三个不是顺序开始而是循环往复,在开发学习的过程不断分析改进
    需要学多长时间(白天上班,晚上基本都有空)。需要多少时间,看你想达到的成果了。
    1,如果你就是想用点小技巧让excel变得稍微灵活聪明些,那个快的
    2,如果你想开发一个工资管理软件,那就要踏实了。当你的业务逻辑分析出来以后,就开始制定阶段性目标。如果你想一直一直用你的开发的东西,那就一定要耐心;不图速度,要稳重步步为营。注重可读性,拓展性。不然你的维护成本会很高
    多说两句,如果你当前的工具不好用要像领导反映,要在市场搜索一下有没有已有的解决放案,建议领导考虑更换已有的软件。但这不影响你求知好学哈加油吧,祝你成功
      

  13.   

    我认为事在人为,做任何事都有困难,你有想法,这就是思考,解决问题是你的行动,将来一定是CEO.
    建议:1,先易后难;
       2,先模块后集成;
       3,先Access,后SQL;
         4,先C/S,后B/S。
       
      

  14.   

    刚才忘了提醒Access有丢失数据的可能,要做好备份工作。
      

  15.   

    我也是刚开始学习编写软件,vb6+access
    虽然学得很差,但是满足自己的应用也不是很难。
    买一本VB入门的书,边看边写,不懂的多上论坛问问。热心的前辈们还是很多的报表建议使用excel模板,你把excel格式调整好,然后把数据库里面的数据往表格里填写就行了。方法可能笨一点,但好在比较容易。先不管它写的好不好,程序流畅不流畅,先写了,能用再说。我大学的时候,就学了一点FORTRAN语言,还是DOS下面用的那种,数据库基础都没有。现在毕业10多年了。今年刚开始学习,大家别笑话哈
      

  16.   

    虽然我现在技术并不是很好。
    但是看到楼上的几点争吵觉得非常无意义。首先,我看到有人说数据库设计的问题,楼主自己本身是工资管理人员,现在用的一套系统的Excel报表,那么这套报表其实就是数据库表。对于楼主这种十分熟悉自己业务的人来说,数据库设计根本不是问题。第二,整体程序设计难度并不大,其主要功能就是对各数据表的增删改查,而一些计算分析,对于非相关业务的程序员来说也许很难,但是对于楼主这样熟悉业务流程的人来说,一样不是问题。第三,明显楼主需要的只是个单机的,对工资文档进行整合管理的软件,并不需要网络支持,根本无需考虑什么C/S B/C结构什么的。
    建议楼主主要学习下VB与access数据库连接以及读写操作方面的知识。然后就是一定要明确的将自己所需要的模块,功能,详细的画下来。通过这些图来设计界面以及功能模块之间的联系。以我自身的一个例子来说,我这边是搞电气研发的,但是需要远程监控软件。我们这个项目给很多专门的程序员看过,都说很难。但是最后硬是被我们这些技术并不怎么强的业余人员完成了。主要原因是,专门的程序员对我们所使用的相关工业上的通信协议以及数据处理流程不了解,所以才会觉得很难。而对于我们这些天天处理这些流程的人来说,只要把语法,框架等学会,就能完成开发。如过有对我上面一段话不认同的朋友,我提一个问题,有多少专门的程序员懂得Modbus RTU协议或者ASKII协议。又有几个懂得GSM协议中的AT指令的运用(这个可能做手机软件的人懂)。所以,楼主完全可以不必理会那些把项目说的很难的人的说法,大胆的按照自己的想法去做,即使没成功对自己也会有很大的帮助。如果按着那些人的说法,难就不去尝试,那你估计永远也就是现在的水平了。
      

  17.   

    更正 是B/S 不是B/C 手误
      

  18.   

    楼上给了很多很好的建议。
    总体看你的优势是熟悉财务业务。
    劣势是没有编程经验,特别是数据库开发经验。
    如果只是简单应用,没有严格的权限分配、业务流程、远程部署等要求,一个稍有经验的程序员几天就完成了。
    要学的:VB基础,VB数据库编程 
    其实很多代码网上都有现成的。比如数据库的连接等。多搜搜