我喜欢编程,但是从没有进过软件公司,所有的技术(主要是VB,SQL)都是自学,所有的编程的问题都是自己摸索的进行,当然也要感谢网络上的各位热心的朋友对我的指点,目前我主要编写数据库程序,用VB或者VBA做前台界面,ACCESS作为后台的数据库。但是在开发一个人力资源管理程序的时候发现一个人开发数据库程序真的很头疼。下面是我遇到的难解的问题,希望真正的编程高手指点迷津。
1、越来越发现数据库开发时前期的规划,与客户的沟通越来越重要。我已经意识到在用户使用程序进行数据录入的时候,数据验证是非常重要的,可是我在使用EXCEL作为录入界面的时候发现当要输入一个日期类型的数据的时候,我编写的数据验证只对用户第一次的输入起到验证作用,比如用户输入数字3,会提示用户输入的数据不是日期类型,等用户输入日期类型以后,EXCEL会自动的把下一行的单元格格式默认为日期类型,这样用户再次输入数字3的时候,excel会自动的把它转化为一个日期类型,这样我的验证就无效了,想破了脑袋我也没找出解决办法。
2、在EXCEL中删除工作表中的一行数据,我希望同时可以把数据库中对应的记录删除掉,但是EXCEL工作表没有删除事件,网上搜索到了可以给EXCEL添加删除事件的代码,我看不明白,所以我的解决办法是在自定义的菜单选项中添加了一个删除记录的命令,但是用户还是习惯于右击选中的数据表单元格--单击删除,后果是只把数据表中的数据删除掉了,但是数据库中依然存在这条记录,我可以把EXCEL自带的删除命令屏蔽掉,可是那样用户就不能删除不需要的文字了。
------解决方案--------------------------------------------------------
建议你用按钮的方式实现日期数据的输入,而数据删除的问题可以换一个思路去考虑,采用批量数据更新的方式去实现.
第一步: 从数据库导出所需的数据到EXCEL.
Select *
FROM 表名
WHERE 条件
第二步: 在EXCEL中对数据进行编辑.
第三步: 从数据库中删除原来的数据.
Delete
FROM 表名
WHERE 条件
第四步: 用循环把编辑后的数据插入到数据库中
Insert Into 表名(字段名)values(值)