设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 6280|回复: 10
打印 上一主题 下一主题

[查询] 在查询里怎么更新2个表之间有关联的记录?(带附件)

[复制链接]
跳转到指定楼层
1#
发表于 2015-5-18 18:53:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 玉树TMD临风 于 2015-5-18 18:54 编辑

不知道附件传上来没有。

当成QQ聊天,按CTL+ENTER发出来了。

要求:将表1中的空白字段更新为表2中对应文档号的字段,其中件数应是所有的页次+最后一个记录的页数

本帖子中包含更多资源

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

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

点击这里给我发消息

推荐
发表于 2015-5-21 08:44:43 | 只看该作者
玉树TMD临风 发表于 2015-5-19 19:50
表1还有个“档案名称”字段,比如“张三个人档”,“张三奖励档”

表2对应的就是“张三个人档”的人事 ...

就算这样,至少表1中能通过查询得到数据的那几个字段还是没存在的必要,通过查询与表1建立关系即可。
回复 支持 1 反对 0

使用道具 举报

推荐
发表于 2015-5-19 12:00:55 | 只看该作者
本帖最后由 roych 于 2015-5-19 12:02 编辑

我也是比较赞同轻风的说法的。不过既然楼主需要更新的话,这里就给个SQL代码吧【恕我不是很理解另外两个字段,可能与你所想要的效果不符】:
  1. UPDATE 表1 SET 表1.文档开始时间 = DFirst("文件级档号","表2","档号='" & [档号] & "'"), 表1.文档结束时间 = DLast("文件级档号","表2","档号='" & [档号] & "'"), 表1.页数 = DSum("页数","表2","档号='" & [档号] & "'"), 表1.件数 = DSum("页数","表2","档号='" & [档号] & "'")+DSum("页次","表2","档号='" & [档号] & "'");
复制代码

如果数据较多,建议还是用ADO处理吧。域函数会慢一些。而且这两个表不好建立关系。以下供参考:
http://www.office-cn.net/thread-108107-1-1.html


本帖子中包含更多资源

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

x

评分

参与人数 1经验 +10 收起 理由
zpy2 + 10 (V币)优秀提问、答复(1-2分)

查看全部评分

回复 支持 1 反对 0

使用道具 举报

2#
 楼主| 发表于 2015-5-18 22:15:08 | 只看该作者
本帖最后由 玉树TMD临风 于 2015-5-18 22:20 编辑

没有图片大家可能懒得下,我把表数据复制出来一下,如下表。
要把表1中的后4个字段更新,单独用查询貌似不行,只能用记录集吧,我用记录集还得开2个recordset,不知道是我写得不对还是必须有和2个,哪位大神指点一下。(编辑时好好的,一发布全乱了)

表1
序号 档号 文档开始时间 文档结束时间 件数 页数
1 2015-001  
2 2015-002 20150101    20150205      4    18
3 2015-003 20150501    20150501      1     6   
4 2015-004   
5 2015-005   

表2
序号 档号 文件级档号             形成日期   页次 页数
1 2015-001 2015-001.001 20150101  1   2
2 2015-001 2015-001.003 20150102  3   4
3 2015-001 2015-001.007 20150103  7   1
1 2015-002 2015-002.001 20150101  1   3
2 2015-002 2015-002.004 20150202  4   2
3 2015-002 2015-002.006 20150203  6   5
4 2015-002 2015-002.011 20150205  11 8
1 2015-003 2015-003.001 20150501  1   6


点击这里给我发消息

3#
发表于 2015-5-19 06:57:38 来自手机 | 只看该作者
本帖最后由 zpy2 于 2015-5-19 06:58 编辑
玉树TMD临风 发表于 2015-5-18 22:15
没有图片大家可能懒得下,我把表数据复制出来一下,如下表。
要把表1中的后4个字段更新,单独用查询貌似不 ...


select 档号,min(时间) As 开始时间,max(时间) As 结束时间,count(序号) As 件数
From 表2
Group By 档号

再用新建更新查询 更新表1
试试

点击这里给我发消息

4#
发表于 2015-5-19 07:01:19 来自手机 | 只看该作者
sum(页数) As 页数
5#
 楼主| 发表于 2015-5-19 10:37:21 | 只看该作者
这个试过了,提示查询是不可更新的子查询。

点击这里给我发消息

6#
发表于 2015-5-19 11:00:13 | 只看该作者
我觉得表1没有存在的意义嘛,直接用查询得到表1的数据
  1. SELECT 表2.档号, Min(表2.形成日期) AS 文档开始时间, Max(表2.形成日期) AS 文档结束时间, Count(表2.档号) AS 件数, Sum(表2.页数) AS 页数
  2. FROM 表2
  3. GROUP BY 表2.档号;
复制代码

评分

参与人数 1经验 +10 收起 理由
zpy2 + 10 (V币)优秀提问、答复(1-2分)

查看全部评分

点击这里给我发消息

8#
发表于 2015-5-19 15:40:56 | 只看该作者
玉树TMD临风 发表于 2015-5-19 10:37
这个试过了,提示查询是不可更新的子查询。

还得一个更新查询,一个内链接。熟的话,写成一句,我一般写二个,基础比较查了。

点击这里给我发消息

9#
发表于 2015-5-19 15:42:40 | 只看该作者
多数手机上的,PC端论坛功能还不少了。{:soso_e100:}
10#
 楼主| 发表于 2015-5-19 19:50:48 | 只看该作者
轻风 发表于 2015-5-19 11:00
我觉得表1没有存在的意义嘛,直接用查询得到表1的数据

表1还有个“档案名称”字段,比如“张三个人档”,“张三奖励档”

表2对应的就是“张三个人档”的人事简历和“张三奖励档”的历年奖励表格。

因为档案制作有规定,每本档案不得超过150页,所以说不定还有“张三工作档1”、“张三工作档2”等,所以表1还是有必要的,我放的例子只是举例。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-1 12:33 , Processed in 0.230928 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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