Access中实现GroupConcat效果

Option Compare Database

Public Function GroupConcat(sColumn As String, sTable As String, Optional sCriteria As String, Optional sDelimiter As String = “,”)
On Error GoTo ErrHandler
Dim rs As New ADODB.Recordset
Dim sSQL As String
Dim sResult As String
sResult = “”
sSQL = “select ” & sColumn & ” from ” & sTable
If sCriteria <> “” Then
sSQL = sSQL & ” where ” & sCriteria
End If
rs.Open sSQL, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
Do While Not rs.EOF
If sResult <> “” Then
sResult = sResult & sDelimiter
End If
sResult = sResult & rs.Fields(0).Value
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
GroupConcat = sResult
Exit Function
ErrHandler:
If rs.State <> adStateClosed Then
rs.Close
End If
Set rs = Nothing
GroupConcat = Err.Number & ” : ” & Err.Description

End Function

邮件合并:Word2007自动提取数据制作成绩通知单

今天我们继续帮助老师用Word2007批量制作成绩通知单。这个神奇的通知单自己会从Excel成绩表中提取学生的姓名、学号、各科成绩等等,然后按老师指定的格式自动制作全班同学的成绩通知单!既不用老师挨个儿填写成绩,也不会出差错!很酷吧

我们用到的法宝就是Word2007的“邮件合并”!这个功能也许很多朋友都很熟悉,但因为Office2007的界面和前面版本有所不同,所以特别将步骤写出来,供需要的朋友快速参考。

主要步骤:在Word2007中编辑好成绩通知单格式
用Word2007的“邮件合并”指定Excel2007的成绩数据表作为成绩单的数据源
在Word2007中为Excel2007的成绩数据表中的数据指定显示位置
最后合并生成一个新的成绩通知单的Word文档

下面是我们前两次用到的Excel成绩单。

Word2007“邮件合并”批量生成成绩单

  在Word2007中做好成绩通知单的格式,这里我们做得比较简单,重点在介绍方法。如果数据多,也许表格会比较复杂,不过不管简单还是复杂,Word2007都能轻松帮你搞定!

Word2007“邮件合并”批量生成成绩单

  现在主角出场!选择“邮件”选项卡中的“选择收件人”。

Word2007“邮件合并”批量生成成绩单

  选择“使用现有列表”。

Word2007“邮件合并”批量生成成绩单

  啊!在这里我们选择指定的数据源——也就是Excel成绩表,这样,Word2007才知道从哪里取成绩数据呀!

Word2007“邮件合并”批量生成成绩单

  在文件夹选择制作好的Excel成绩表。

Word2007“邮件合并”批量生成成绩单

  现在Excel的成绩表已经和我们的Word成绩通知单关联在一起了!

提示:如果成绩表文件里面有多个工作表,下图中都会列出来,选择需要的工作表就可以了。

Word2007“邮件合并”批量生成成绩单

  我们可以点击“邮件”选项卡中的“编辑收件人列表”,看看我们的数据表是不是和Word通知单联系在一起了。

Word2007“邮件合并”批量生成成绩单

  看!之前Excel成绩表中的数据都在这里了!,如果老师并不需要所有的数据,可以在这里选择需要的部分数据。

Word2007“邮件合并”批量生成成绩单

  可是,通知单怎么知道这么多的数据各自应该出现在什么位置呢?现在!关键的一步来啦!

找到“邮件”选项卡中的“插入合并域”。就是用这里,我们可以方便地指定数据在成绩通知单中应该显示的位置。

Word2007“邮件合并”批量生成成绩单

  很简单!下面把光标停在成绩通知单Word文档中需要出现学号的地方,这里就是“学号:”的后面,然后,点击“插入合并域”的小三角,下拉菜单中出现Excel成绩表中的相应字段,选择“学号”就可以啦!

Word2007“邮件合并”批量生成成绩单

  现在“学号:”的后面多出“<<学号>>”的字样,看起来好像很奇怪,别着