Office中国论坛/Access中国论坛

标题: 怎样批量更新字段中的内容?[已解决] [打印本页]

作者: 宏魔法师    时间: 2011-7-12 16:19
标题: 怎样批量更新字段中的内容?[已解决]
本帖最后由 宏魔法师 于 2011-7-13 16:01 编辑

现在有一个Access数据库,其中有2张表 1、tblSALES (基础数据表)  2、tblMC_ajdj  (tblSALES中MC_ajdj字段的内容汇总)
,我想把tblSALES表中的一个字段MC_ajdj其中的内容都替换成 tblMC_ajdj中相应内容的数字编号。
现在的问题是这个ACCESS数据库内容太大,本来用手工更新的,需要花太多时间,有没有VBA程序可以使用,批量更新下,非常感谢![attach]46070[/attach]

作者: 宏魔法师    时间: 2011-7-12 16:39
另外再补充下:我不奢望,一次全部更新,一个一个更新都可以的,关键是此数据表太大,200M多,所以一定要用VBA来更新。
作者: roych    时间: 2011-7-12 17:16
两张表根本就不存在任何关系,不知道LZ想怎么更新。
作者: todaynew    时间: 2011-7-12 17:46
宏魔法师 发表于 2011-7-12 16:19
现在有一个Access数据库,其中有2张表 1、tblSALES (基础数据表)  2、tblMC_ajdj  (tblSALES中MC_ajdj字 ...

UPDATE tblSALES SET tblSALES.MC_ajdj = DLookUp("ID","tblMC_ajdj","MC='" & [MC_ajdj] & "'");

作者: 宏魔法师    时间: 2011-7-13 06:36
感谢 todaynew .
你给出的查询更新非常好,但我这里因为表数据太大,在210000行时就报错,说数据太多不能更新。有什么方法可以解除这个什么最大值设定.
另外,我想通过VBA来更新,但通过你给出的语句不能通过,请查看下问题出在哪里?
DoCmd.SetWarnings False
  DoCmd.RunSQL "UPDATE tblSALES SET tblSALES.MC_ajdj = DLookUp([ID],[tblMC_ajdj],[MC]='" & [MC_ajdj] & "')"
  DoCmd.SetWarnings True
作者: asklove    时间: 2011-7-13 08:36
实在不行,就用CTRL+F查找替换得了
就是要手动一个一个替换,看你的表也就是搞个16次
作者: roych    时间: 2011-7-13 11:20
回复 宏魔法师 的帖子

如果数据那么多的话,不如根据条件分成几个查询(按日期或者ID段等等),然后执行宏来更新。
又或者分几次导出到Excel表,用Vlookup函数处理后,链接表再追加上去(原先的表导出后即删除全部记录)。
作者: 宏魔法师    时间: 2011-7-13 16:00
感谢asklove
我用了你的方法,虽然工作非常繁琐,花了几乎一个上午的时间,终于好了。
感谢roych
提出的意见也很好,我会试着操作下,多学习下Access知识。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3