【问题标题】:manipulate query result to create another table操纵查询结果创建另一个表
【发布时间】:2012-10-26 10:22:29
【问题描述】:

好的,所以我尝试了几种不同的方法并搜索了论坛。我发现了与我遇到的类似的问题,但不是我想要的。 我对我的数据库有一个查询,它返回 2 列。第一列是代号,第二列是代号的修订版

例如

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 循环做类似的事情,但结果类型相同。 请告诉我我迭代查询的方式的错误,并请帮助我从结果中创建一个新表。

【问题讨论】:

  • 不需要贿赂 - :) - 或者谢谢。 Stackoverflow 不是那样工作的。

标签: ms-access vba ms-access-2007


【解决方案1】:

为什么不直接查询?

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

其中 tx 是您的表的名称。

【讨论】:

  • 哇,谢谢。那确实成功了。非常感谢。我正在慢慢学习,希望我最终会到达那里。很抱歉贿赂这件事,我只是想知道我会多么感激 :-) 至于谢谢,我不能不说……哈哈……再次感谢 ;-) ..Red
猜你喜欢
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多