1

わかりましたので、いくつかの異なる方法を試し、フォーラムを検索しました。私が抱えている問題と同様の問題を見つけましたが、探しているものとはまったく異なります。データベースに 2 つの列を返すクエリがあります。最初の列はコード番号で、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ループは明らかに異なります。私が試した1つの方法は次のとおりです。

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ループで同様のことを試みましたが、結果のタイプは同じです。クエリを反復処理する際の私の方法のエラーを教えてください。結果から新しいテーブルを作成するのを手伝ってください。

4

1 に答える 1

1

単純なクエリではないのはなぜですか?

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

tx はテーブルの名前です。

于 2012-10-26T10:27:12.140 に答える