第一步:建立查询1
SELECT 总表.姓名列, 总表.地址列, 总表.工资, 姓名.姓名依据, 地址.地址依据
FROM 地址, 姓名, 总表
WHERE (((总表.姓名列) Like [姓名.姓名依据] & "*") AND ((总表.地址列) Like [地址.地址依据] & "*"));
得到以下结果:
第二步:生成地址依据表:
SELECT 查询1.地址依据 AS 地址, 查询1.姓名依据 AS 姓名, Sum(查询1.工资) AS 工资总计 INTO 地址依据
FROM 查询1
GROUP BY 查询1.地址依据, 查询1.姓名依据;
运行结果如下:
第三步:新建一窗体,放一按钮,按钮的单击事件是:
Private Sub Command0_Click()
Dim sql As String
Dim rst As New ADODB.Recordset
Dim strNO As String
sql = "select * from 地址依据 "
rst.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rst.MoveFirst
For i = 1 To rst.RecordCount
If rst!地址 <> strNO Then
dz = rst!地址
CurrentDb.Execute "select """ & rst!姓名 & """ AS 姓名,""" & rst!工资总计 & """AS 工资总计 into [" & dz & "]"
strNO = rst!地址
Else
CurrentDb.Execute "insert into [" & dz & "](姓名,工资总计) select """ & rst!姓名 & """,""" & rst!工资总计 & """"
End If
rst.MoveNext
Next
rst.Close
Set rst = Nothing
End Sub
单击,结果生成三个表。
可见附件:
点击下载此附件