Office中国论坛/Access中国论坛

标题: 菜鸟请教:在一对多关系中,如果将多个记录合并成一个字符串? [打印本页]

作者: James_lam    时间: 2006-2-28 18:38
标题: 菜鸟请教:在一对多关系中,如果将多个记录合并成一个字符串?
本人是ACCESS菜鸟,想尝试自己修改数据库,有一问题请教。

本人使用Catraxx软件管理我的几千张唱片,这个软件使用access数据库,所以我可以用access打开来自己修改。

一张唱片与艺术家(乐团/乐手/指挥/作曲家等)是一对多关系,一张唱片往往有多个艺术家(最少有一个以上作曲家+演奏者)。所以唱片的基本信息如:标题/唱片公司等在Album表中,而艺术家在Artists表中。

想请教各位大大:我如何将一张唱片对应的艺术家,合并成一个字符串呢?最好不用代码了,对我这种菜鸟,有点晕…


作者: hi-wzj    时间: 2006-2-28 18:55
它是需要代码来合并的.
作者: James_lam    时间: 2006-3-1 00:02
如果一定要代码,那位大大能否提供代码参考呀?谢谢!
作者: James_lam    时间: 2006-3-1 19:54
请高手帮忙啊!
作者: fan0217    时间: 2006-3-1 21:28
把你的例子放上来吧
作者: James_lam    时间: 2006-3-1 23:40
以下是引用fan0217在2006-3-1 13:28:00的发言:
把你的例子放上来吧

上传!谢谢帮忙!
作者: James_lam    时间: 2006-3-2 00:56
怎么上传不了文件啊?
作者: James_lam    时间: 2006-3-2 00:57
以下是引用James_lam在2006-3-1 16:56:00的发言:
怎么上传不了文件啊?



[attach]16111[/attach]

可以了。请大大帮忙,谢谢!

作者: fan0217    时间: 2006-3-2 04:20
夸张,里面那么多表,怎么找啊!?

把例子精简了再发上来吧。
作者: James_lam    时间: 2006-3-2 05:57
[attach]16114[/attach]


简化了,谢谢!
作者: zweidii    时间: 2006-3-3 03:36
晕!怎么全是英文,我看不懂
作者: James_lam    时间: 2006-3-3 08:26
标题: 改了中文
[attach]16130[/attach]


一张“唱片ID”会对应好几个“艺术家姓名”,怎样把这些一串的“艺术家姓名”,变成一个字符串,和“唱片ID”一一对应。

这样我就可以不用子窗体或者子报表了。

谢谢!
作者: James_lam    时间: 2006-3-5 03:06
救命啊!
作者: sgrshh29    时间: 2006-3-5 03:40
喊救命还不如自己先认真研究研究。

提供你一个方法,没做过试验,应该是可以的。先做一个函数:

public function aaa("艺术家字段" as string, "表名" as string, "唱片ID" as string,optional bbb as string)
    dim rst as dao.recordset
    set rst = currentdb().openrecordset("select * from " & "表名" & IIf([唱片ID] = "", "", " Where " & "唱片ID"))
    aaa = rst("艺术家字段")
    rst.MoveNext
    do while not rst.eof
        aaa = aaa & bbb & rst("艺术家字段")
        rst.movenext
    loop
end function

再做一个查询:

select 表1.字段1, aaa("[艺术家字段]","表名","[唱片ID]='" & [唱片ID] & "'") AS 表达式1
from 表名
group by 表名.唱片ID;


注意:艺术家字段、表名、唱片ID 都是字符串,不是数值。
作者: msf    时间: 2006-3-6 02:22
合并起来简单,但是你的客户端未必支持






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