你看使用列合行函数行不行 建立以下模块 按主表的ID号合并 包号/品目号:=fn_GetDataAA ([ID号])
Option Explicit
'引用ADO
Public Function fn_GetData(strID号 As String) As String
fn_GetData = ""
Dim rst As New ADODB.Recordset
rst.Open "select * from 需要合并的表名 where ID号=" & strID号 & "", CurrentProject.Connection
If Not rst.EOF Then
Do While Not rst.EOF
fn_GetData = fn_GetData & " " & rst!需要合并的项目
rst.MoveNext
Loop
fn_GetData = Right(fn_GetData, Len(fn_GetData) - 1)
End If
End Function
一个不用循环实现的合并记录为字符串的函数,可在查询中调用
Public Function DMerge(Exps As String, Domain As String, _
Optional Criteria As String, Optional Separator As String = ";") As String
或用 t小雨的
'函数功能: 合并指定记录集指定字段值为一个字符串
' expr : 要合并的字段
' domain : 来源表或查询
' criteria : 可选,限制记录的条件表达式
' Separator : 可选,合并记录的分隔符,默认为分号(;)
'
'调用示例: DMerge("姓名","人员表","性别='" & [性别] & "'",Chr(13) & Chr(10))
' 以上示例在查询中,使用了换行分隔符,返回换行显示的姓名
On Error Resume Next
Dim rst As New ADODB.Recordset
Dim strSql As String
strSql = "Select " & Exps & " From " & Domain
If Criteria <> "" Then strSql = strSql & " Where " & Criteria
rst.Open strSql, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText
If Not rst.EOF Then DMerge = rst.GetString(adClipString, , , Separator)
rst.Close
Set rst = Nothing
End Function