我发现一个问题,不知你们有没有遇到过?这个问题不太好表述,请大家耐心听我说说:我是用VB6+ACCESS做程序的,同一些低码在程序中保存数据时却有时正确,有时却不正确。你也许会说,不正确时是什么提示,但我正是因为这个事担心,程序象正常工作一样,什么也不给你提示,如果你要查询你保存的这些数据,你也会查到他们。所以是否已经正确保存,你当时是不会知道的,因为程序看起来工作正常(被保存的数据也能查到,当然让你觉得正常)。但当你退出程序,关机后到第二天你再进入程序时,如果上次保存过程中是有问题的,你这时就会发现,你上一次保存的数据可能一点也没有了,就象昨天你什么也没做过一样。有时可能上次做了一天的工作,保存记录可能多达上千条,但再启动计算机时却没有了。对这个问题,我是查看了很多资料也没有找到原因,原来我以为是没有在事务处理语句后加上强制保存的参数,可是我加了后,还是有时候会出现,真得让我很是困惑,好象从VB4我就发现有这个问题,如果这个问题找不到原因,还真让我觉得这个VB系列的语言是不敢用的。如果你们有遇到过这个情况的一定不惜赐教。我的分数不多,等有了分我再多给,先解决问题要紧呀,毕竟我们都有在用呀.

解决方案 »

  1.   

    感觉这个问题和VB无关吧?我觉得可能是ACCESS自身的问题,你可以去ACCESS版问一下。
      

  2.   

    没有遇见这样的事情检查自己代码,是否在关闭前做好update
      

  3.   

    不是说检查代码问题不问题。而是检查是否写完整update按你那说法,那以前用access做应用怎么都没有人说出过这么严重的问题而且我本身也用access开发过单机版本,也未出现这样的问题我个人感觉是个人写作习惯问题产生
      

  4.   

    谢谢你的提示。你说的写完整的UPDATE是指什么呀?比如我添加一条记录时
    rs.add
    ....
    rs.update
    是这样吗?
    你说这是个人写作习惯,我觉得不是,你看,程序编译好了以后就用,在用的过程中执行同一个地方时却有时会成功有时却不会成功。而且在保存后当时只要不重新启动计算机就还能查到,你也是搞开发的,你一定要注意这个事,看能否解决。
      

  5.   

    增加记录用:conn.execute "insert into tablename(...) values(...)"
    修改记录用:conn.execute "update tablename set ... where ..."
    删除记录用:conn.execute "delete from tablename where ..."
      

  6.   

    对 mdb 做压缩和修复操作,如果数据量比较大,应该考虑拆分 mdb 了。
      

  7.   

    请问VB老鸟:你说的拆分MDB应该怎么操作?我的数据库单个表最大的有35万条记录。
      

  8.   

    拾万以上的数据最好是转 SQL Server,实在不行就使将数据根据不同的逻辑分组(比如按年份、月份之类)将数据存放到不同的 mdb 中,减少单个 mdb 的记录数,因为通常数据只更新到年份最大的一个 mdb,这样即可以避免 mdb 数据量大时出现莫名其妙的错误(更新不保留就是典型一例)也能提高数据库性能。唯一的麻烦是查询,原先一个查询就能完成的报表现在需要操作多个 mdb 才能完成,所以拆分 mdb 要充分考虑兼容报表的分组。针对还有一种辅助的方法是生成统计数据,比如在单独的一个 mdb 中将数据进行按月汇总,这样查询前只要将当前的汇总数据更新一下就可以很方便地查询了。总的来说,原先没考虑数据量的问题的话,拆分 mdb 的工作量很大,所以最方便的是转 SQL SERVER。