col1,col2,col3
A B C
A D K
A D B
C A 1
C A 2
希望得到
A B C
A D K,B
C A 1,2
急求这样的查询怎么实现,大体知道得用vba,但是对recordset对象不太了解不能象ado.net中的datatable那样处理,求帮忙
6 个解决方案
#1
用VBA+SQL实现,且必须在ACCESS中,你的环境?语言+MDB?
#2
跟其他的没一点关系,就是个单独access 程序 我是说我熟悉ado.net但是对ado的record对象操作不熟悉,而且我知道这个得用vba写,就是这点写不出来,我的思路是在vba工程中创建一个函数然后这个函数返回一个recordset 然后我再把这个recordset当作一个查询的数据源供其他地方使用
#3
select col1,col2,max(lja(col1,col2)) from tt group by col1,col2
模块:
Function lja(ByVal z1 As String,z2 As String)
aa = ""
Set rs = CurrentDb.OpenRecordset("SELECT * from tt where col1='" & z1 & "' and col2='" & z2 &"'")
Do While Not rs.EOF
aa = aa & rs(2)
rs.MoveNext
Loop
lja = aa
End Function
模块:
Function lja(ByVal z1 As String,z2 As String)
aa = ""
Set rs = CurrentDb.OpenRecordset("SELECT * from tt where col1='" & z1 & "' and col2='" & z2 &"'")
Do While Not rs.EOF
aa = aa & rs(2)
rs.MoveNext
Loop
lja = aa
End Function
#4
只能在ACCESS中使用,语言中思路一致,在语言中指东画西记录集循环取值、累加
#5
感谢大神,我先调试修改下如果没问题就结贴
#6
#1
用VBA+SQL实现,且必须在ACCESS中,你的环境?语言+MDB?
#2
跟其他的没一点关系,就是个单独access 程序 我是说我熟悉ado.net但是对ado的record对象操作不熟悉,而且我知道这个得用vba写,就是这点写不出来,我的思路是在vba工程中创建一个函数然后这个函数返回一个recordset 然后我再把这个recordset当作一个查询的数据源供其他地方使用
#3
select col1,col2,max(lja(col1,col2)) from tt group by col1,col2
模块:
Function lja(ByVal z1 As String,z2 As String)
aa = ""
Set rs = CurrentDb.OpenRecordset("SELECT * from tt where col1='" & z1 & "' and col2='" & z2 &"'")
Do While Not rs.EOF
aa = aa & rs(2)
rs.MoveNext
Loop
lja = aa
End Function
模块:
Function lja(ByVal z1 As String,z2 As String)
aa = ""
Set rs = CurrentDb.OpenRecordset("SELECT * from tt where col1='" & z1 & "' and col2='" & z2 &"'")
Do While Not rs.EOF
aa = aa & rs(2)
rs.MoveNext
Loop
lja = aa
End Function
#4
只能在ACCESS中使用,语言中思路一致,在语言中指东画西记录集循环取值、累加
#5
感谢大神,我先调试修改下如果没问题就结贴