从多个记录中产生一个列表

本文介绍了一种在Access数据库中从分组记录生成项目清单的方法,通过使用自定义函数Concat和SQL查询,可以将同一组内的多个记录汇总成一个条目列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

许多海报要求显示如何从(可能)分组在一起的多个记录中生成项目清单。

以以下数据为例(从名为[tblForum]的表中):

Zone             Forum
Community        Introductions
Community        Community Cafe
Community        Software Development
Community        Jobs / Contract Work
Community        Experts Panel
Programming      C++ / C
Programming      Java
Programming      .NET
Programming      Visual Basic
Programming      Python
Web Development  PHP
Web Development  Ruby / Rails
Web Development  Perl
Web Development  ASP
Web Development  ColdFusion
Web Development  Javascript / Ajax
Web Development  Flash
Web Development  XML
Web Development  WAP / WML
Web Development  HTML / CSS
Database Help    MySQL
Database Help    Oracle
Database Help    SQL Server
Database Help    PostgreSQL
Database Help    Access
Database Help    DB2
Sys Admin & OS   Apache
Sys Admin & OS   IIS
Sys Admin & OS   Networking
Sys Admin & OS   Linux / Unix / BSD
Sys Admin & OS   Windows
如果您希望将其分组到列表中(如下所示),请继续阅读。
Zone             Forums
Community        Introductions, Community Cafe, Software Development, Jobs / Contract Work, Experts Panel
Programming      C++ / C, Java, .NET, Visual Basic, Python
Web Development  PHP, Ruby / Rails, Perl, ASP, ColdFusion, Javascript / Ajax, Flash, XML, WAP / WML, HTML / CSS
Database Help    MySQL, Oracle, SQL Server, PostgreSQL, Access, DB2
Sys Admin & OS   Apache, IIS, Networking, Linux / Unix / BSD, Windows
首先,在标准模块中创建一个函数,类似于所附的示例代码:
'Concat Returns lists of items which are within a grouped field
Public Function Concat(strGroup As String, _
                       strItem As String) As String
    Static strLastGroup As String
    Static strItems As String 
    If strGroup = strLastGroup Then
        strItems = strItems & ", " & strItem
    Else
        strLastGroup = strGroup
        strItems = strItem
    End If
    Concat = strItems
End Function
用于调用此函数的SQL形式为:
SELECT   [Zone],
         Max(Concat([Zone], [Forum])) AS [Forums]
FROM     [tblForum]
GROUP BY [Zone]
(删除重复项)的另一种形式是:
'Concat Returns lists of items which are within a grouped field
Public Function Concat(strGroup As String, _
                       strItem As String) As String
    Static strLastGroup As String
    Static strItems As String 
    If strGroup = strLastGroup Then
        If InStr(", " & strItems & ", ", ", " & strItem & ", ") = 0 Then _
            strItems = strItems & ", " & strItem
    Else
        strLastGroup = strGroup
        strItems = strItem
    End If
    Concat = strItems
End Function

From: https://bytes.com/topic/access/insights/640105-producing-list-multiple-records

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值