我有一个包含多个货件的数据表 - 表名称“2 - Rate 0 Pre-Setup”。 数据示例。
Country POL Volume
India Mumbai 90
India Mumbai 9
India Nhava Sheva 3
India Nhava Sheva 474
India Tuticorin 19
India Tuticorin 1352
Indonesia Jakarta 1020
Indonesia Jakarta 67
我需要将基于volume字段的数据聚合到一个新表中,为用户生成一个模板,如下所示。
Country POL Volume
India Mumbai 99
India Nhava Sheva 477
India Tuticorin 1371
Indonesia Jakarta 1087
下面的代码可以正常复制原始表并生成新的“Test 1”表,但我很难根据Volume字段聚合数据。 推定总和(泳道!体积),但它错了。
Private Sub NewOceanFreight_Click()
Dim db As DAO.Database
Dim lane As DAO.Recordset
Set db = CurrentDb
Set lane = db.OpenRecordset("2 - Rates 0 Pre-Setup")
Set Test1 = db.OpenRecordset("Test 1")
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM [Test 1]"
Do Until lane.EOF
lane1 = lane![Country]
lane2 = lane!POL
lane3 = lane!Volume
Test1.AddNew
Test1![Origin Country] = lane1
Test1![Origin Port] = lane2
Test1![CBM] = lane3
Test1.Update
lane.MoveNext
Loop
lane.Close
DoCmd.Requery
End Sub
道歉,如果这是重复但是对于VBA在Access中是新手,并且找不到其他帖子对我有用的答案,所以欢迎任何建议。感谢。
答案 0 :(得分:1)
只需在原始表上运行聚合查询,如果需要,使用make-table query将结果导出到新表。这里不需要VBA。所有这些都可以在SQL查询设计中完成。
SELECT t.Country, t.POL, SUM(Volume) AS Total_Volume
FROM [2 - Rates 0 Pre-Setup] t
GROUP BY t.Country, t.POL
使用INTO
子句
SELECT t.Country, t.POL, SUM(Volume) AS Total_Volume
INTO myNewTable
FROM [2 - Rates 0 Pre-Setup] t
GROUP BY t.Country, t.POL