操纵查询结果以创建另一个表

时间:2012-10-26 10:22:30

标签: ms-access-2007 access-vba

好的,所以我尝试了几种不同的方式并搜索论坛。我发现了类似的问题,但我并不完全正在寻找。 我在我的数据库上有一个返回2列的查询。第一列是代码编号,第二列是

中代码编号的修订版

e.g。

Code_1       0
Code_1       1
Code_2       0
Code_2       1
Code_2       2  

现在我需要做的是遍历此查询并选出与每个代码编号关联的代码和最大修订版号,并将它们放入另一个表中,以便最终得到

Code_1     1
Code_2     2

在我的新表中。

我甚至无法循环查询,每次得到的都是第一个结果。我已经使用下面的Debug.Print来向我展示我的循环正在做什么。我已经完成了一些Java和vba循环是不同的。我试过的一种方法是:

Dim db  As DAO.Database
Dim rs  As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("Query_Name")

Dim i,j as Integer
Dim tempvar1, tempvar2 As Variant
For i = 0 To rs.EOF
tempvar1 = rs!Code_Number
For j = 0 to rs.EOF
tempvar2 = rs!Code_Rev
If Code_Rev > tempvar2 Then
tempvar2 = rs!Code_Rev
End If
Debug.Print(tempvar1 + tempvar2)
Next j
Next i

我得到的只是列表中的第一个代号和修订版。如果我甚至无法正确遍历列表,我就没有希望从我需要的结果中创建一个新表: - / 我也尝试用Do While Loop做类似的事情,但结果相同。 请告诉我迭代查询的方式错误,请帮我从结果中创建一个新表。

1 个答案:

答案 0 :(得分:1)

为什么不直接查询?

SELECT tx.Code, Max(tx.[NewCode]) AS MaxOfC INTO New
FROM tx
GROUP BY tx.Code;

其中tx是表格的名称。