Office中国论坛/Access中国论坛

标题: group by时能否显示其它字段的内容 [打印本页]

作者: pho    时间: 2006-4-25 16:47
标题: group by时能否显示其它字段的内容
表内容如下:
    aa                   xm
120000087425 北方广告部
120000087426 北方广告部
120000087429 北方广告部
120000087483 北方广告部
120000087484 南方广告部
120000087485 南方广告部
120000087486 南方广告部
120000087592 光大科技有限公司
120000087606 光大科技有限公司
120000087608 光大科技有限公司

能否实现group by xm字段时,将所对应的aa字段内容全部取出来,达到下面的效果。
北方广告部             120000087425 120000087426 120000087429 120000087483
南方广告部             120000087484 120000087485 120000087486
光大科技有限公司  120000087592 120000087606 120000087608
作者: zhengjialon    时间: 2006-4-25 16:56
简单的查询是做不到的,要写自定义函数才能实现的,记得有过旧贴实现过.
作者: pho    时间: 2006-4-25 17:27
谢谢!
作者: fan0217    时间: 2006-4-25 17:39
[attach]17383[/attach]

给你写了个过程,假设你的表是表1,执行查询后的值写入表2.代码如下:


Sub MyQuery()
Dim conn As New ADODB.Connection
Dim rec As New ADODB.Recordset
Dim rec2 As New ADODB.Recordset
Dim rec3 As New ADODB.Recordset
Dim strSQL As String
Dim strText As String
Set conn = CurrentProject.Connection
conn.Execute "DELETE 表2.* FROM 表2;"       '清除原表的内容
strSQL = "SELECT DISTINCT 表1.xm FROM 表1;"
rec.Open strSQL, conn, adOpenKeyset, adLockPessimistic
Do While Not rec.EOF
    strSQL = "SELECT * FROM 表1 "
    strSQL = strSQL & "WHERE xm = '" & rec("xm") & "'"
    rec2.Open strSQL, conn, adOpenKeyset, adLockPessimistic
        strText = ""
        Do While Not rec2.EOF
            strText = strText & rec2("aa") & " "
            rec2.MoveNext
        Loop
        strSQL = "SELECT * FROM 表2;"
        rec3.Open strSQL, conn, adOpenKeyset, adLockPessimistic
            rec3.AddNew
                rec3("xm") = rec("xm")
                rec3("aa") = strText
            rec3.Update
        rec3.Close
    rec2.Close
    rec.MoveNext
Loop
rec.Close
Set rec = Nothing
Set rec2 = Nothing
Set rec3 = Nothing
Set conn = Nothing
End Sub

作者: pho    时间: 2006-4-25 18:06
谢谢!
作者: andymark    时间: 2006-4-25 18:19
我也做了一个

[attach]17384[/attach]





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