设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1439|回复: 9
打印 上一主题 下一主题

[表] [求助]表的部分更新问题

[复制链接]
跳转到指定楼层
1#
发表于 2008-5-30 09:15:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有两个表
主表(记录达到3万多条)
更新数据表(每天都有并且只有少部分数据,没有显示的数据的数值应该都为0)
更新过程:需要将原主表中的数据全部更新,并且需要将更新数据表中没有的记录也要更新为0值。

个人努力:通过更新查询更新,但是可能是数据量太大无法更新,且也无法达到对0值的更新。

请各位帮帮忙!

请2楼的管理员帮忙设置一下,本人还是个菜。多谢。附件发上来看看。

还有一个比较重要的!就是要更改相同存货编码的最大的销售日期!

[ 本帖最后由 coolabc 于 2008-5-30 14:55 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2008-5-30 09:43:31 | 只看该作者
使用VBA代码来写
循环所有主表,然后在更新数据表中找有否对应记录,如果有,则更新,如果没有,则更新为0
3#
发表于 2008-5-30 14:38:07 | 只看该作者
建议您将例子放上来,看表结构是否合理。
4#
 楼主| 发表于 2008-5-30 14:53:57 | 只看该作者
希望各位帮帮忙,能比较快速的方法!谢谢!

[ 本帖最后由 coolabc 于 2008-5-30 15:08 编辑 ]
5#
发表于 2008-5-30 15:21:01 | 只看该作者
我猜想您是没掌握更新查询,您能否将您的想法说明清楚,比如将哪个表的哪个字段更新到哪个表的哪个字段,条件是什么?
6#
 楼主| 发表于 2008-5-30 15:38:21 | 只看该作者
我是要将今年发货情况表内的日期更新到产品信息里的最近销售日期
但是条件是所更新的日期,对于相同的存货编码的取最近的日期。
7#
发表于 2008-5-30 16:24:02 | 只看该作者
经测试以下代码是最快的
Public Sub Update()
    Dim rs As DAO.Recordset
    Dim rs1 As DAO.Recordset
    CurrentDb.Execute "update 产品信息 set 最近交易日期=null"
    Set rs = CurrentDb.OpenRecordset("select * from 产品信息")
    Set rs1 = CurrentDb.OpenRecordset("select * from 今年发货情况表 order by 日期")
    While Not rs1.EOF
        rs.FindLast "存货编码 = '" & rs1.Fields("存货编码") & "'"
        rs.Edit
        rs.Fields("最近交易日期") = rs1.Fields("日期")
        rs.Update
        rs1.MoveNext
    Wend
    rs.Close
    rs1.Close
    Set rs = Nothing
    Set rs1 = Nothing
End Sub
8#
发表于 2008-5-30 16:29:51 | 只看该作者
另外没有数据值和零值可不是一个概念的哦.
9#
 楼主| 发表于 2008-5-30 16:46:36 | 只看该作者
现在解决了更新查询,但是怎么让他进行比较呢?

[ 本帖最后由 coolabc 于 2008-5-30 17:19 编辑 ]
10#
 楼主| 发表于 2008-5-30 17:28:48 | 只看该作者

回复 7# 的帖子

Public Sub Update()
    Dim rs As DAO.Recordset
    Dim rs1 As DAO.Recordset
    CurrentDb.Execute "update 产品信息 set 最近交易日期=null"
    Set rs = CurrentDb.OpenRecordset("select * from 产品信息")
    Set rs1 = CurrentDb.OpenRecordset("select * from 今年发货情况表 order by 日期")
    While Not rs1.EOF
        rs.FindLast "存货编码 = '" & rs1.Fields("存货编码") & "'"
        rs.Edit
        rs.Fields("最近交易日期") = rs1.Fields("日期")
        rs.Update
        rs1.MoveNext
    Wend
    rs.Close
    rs1.Close
    Set rs = Nothing
    Set rs1 = Nothing
End Sub
这段代码中是否是在将产品信息内的最近交易日期清空后再进行导入呢?
通过将日期排序来能解决日期选择最大的问题。
但是如果我所更新的数据外的数据是要保留的呢??

[ 本帖最后由 coolabc 于 2008-5-30 17:38 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-16 14:35 , Processed in 0.078946 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表