1

何千ものレコードを保持する既存のテーブルがあります。顧客 ID とそれに関連付けられた日付フィールドに応じて、各レコードを更新する必要があります。

基本的に、日付の順序に応じて、各日付の横に順序番号を付けることができます。

これを行うには、2 つの「for each」ループを使用する必要があると思います。IE

For Each Customer ID in tblCustomers

'gather all records for that customer and get all dates in order from each record via recordset?

    For Each Date 
    newfield = newfield+ 1
    end loop

end loop

これを理解するために誰かが私を正しい方向に向けることができますか?

ありがとう

4

2 に答える 2

3

次のようなもの:

Dim rstCustomers As DAO.Recordset
Set rstCustomers = CurrentDb.OpenRecordset("SELECT CustomerID FROM tblCustomers GROUP BY CustomerID")
If rstCustomers.RecordCount > 0 Then
    rstCustomers.MoveFirst
    Do Until rstCustomers.EOF
        Dim rstRecords As DAO.Recordset
        Set rstRecords = CurrentDb.OpenRecordset("SELECT RecordDate, OrderField FROM tblRecords WHERE CustomerID = " & rstCustomers!CustomerID & " ORDER BY RecordDate")
        If rstRecords.RecordCount > 0 Then
            Dim iCount as Integer
            iCount = 1
            rstRecords.MoveFirst
            Do Until rstRecords.EOF
                rstRecords.Edit
                   rstRecords!OrderField = iCount
                rstRecords.Update

                iCount = iCount + 1
                rstRecords.MoveNext
            Loop
        End If
        rstRecords.Close
        Set rstRecords = Nothing

        rstCustomers.MoveNext
    Loop
End If
rstCustomers.Close
Set rstCustomers = Nothing
于 2013-03-11T11:14:51.657 に答える
0

Recordsetを使用してレコードをループする

于 2013-03-11T11:06:22.683 に答える