access数据库,如果A表中a字段等于B表中b字段,则把符合条件的A表中的c字段值链接起来,赋给B表中c字段, 20

字段类型相同,但结果可能是一对多,怎么做?比如说A表有两条记录A.a=警察和A.a=警察,B.b=警察,A.c=“王刚”和A.c=”李明“,那么赋值B.c=“王刚,李明”... 字段类型相同,但结果可能是一对多,怎么做?比如说A表有两条记录A.a=警察和A.a=警察,B.b=警察,A.c=“王刚”和A.c=”李明“,那么赋值B.c=“王刚,李明”
A
a b c
警察 王刚 河东区
警察 李明 北辰区

小偷 张三 和平区
小偷 马六 南开区
小偷 王五 红桥区

B
a b
警察 王刚“河东区”、李明“北辰区”
小偷 张三“和平区”、马六“南开区”、王五“红桥区”

我表述的可能不清楚,是要达到这种要求,在B表中赋值b字段
展开
 我来答
解0人
2015-10-23 · TA获得超过2389个赞
知道大有可为答主
回答量:1474
采纳率:83%
帮助的人:761万
展开全部

这个用vba去做好点

===============

用vba写自定义函数

首先,建立一个模块,写入以下自定义函数:

Function rcMerge(whereStr$)

Dim rs As New ADODB.Recordset, sql$, resultStr$

   sql = "select a,b,c from A where a='" & whereStr & "'"

   rs.Open sql, CurrentProject.Connection, adOpenKeyset, adLockReadOnly

   Do While Not rs.EOF

       resultStr = resultStr & "、" & rs!b & """" & rs!c & """"

       rs.MoveNext

   Loop

   rs.Close

   Set rs = Nothing

   rcMerge = Replace(resultStr, "、", "", 1, 1)

End Function

然後,建立更新查询,查询的sql:

update B set b=rcmerge(a)

执行,OK!

注意,如果你实际操作的表名称、字段名称和以上的A、B、a、b、c不一样,用的时候以上表名和字段名都要对应修改

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱心永恒2008
2015-10-23 · TA获得超过1231个赞
知道小有建树答主
回答量:1314
采纳率:62%
帮助的人:328万
展开全部
你的数据库设计不合理,
A
a c
警察 王刚
警察 李明
B //B不应该有c字段

b
警察
小偷

类似的方法应该用 left join(左连接,是和一对多的情况)
select A.a,A.c from A Left Join B where A.a=B.a
追问
请再看看我的问题,我在补充中重新叙述了问题,谢谢
追答
见评论
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式