Caros amigos,
Estou quebrando a cabeça com esse código. O Do While está em loop. O código não termina. Onde está errado. Ler uma tabela que tem 30 registros e atualiza alguns campos dependendo de certas condições. Mas o problema do caso é o loop.
Private Sub Comando10_Click()
Dim db As Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM [ValorMoedaY]")
Dim AcumulaX As Long
Dim DescAcumulaX As Long
Dim GuardaValorX(100) As Long
Dim IndiceX As Long
Dim IndiceAntX As Long
Dim AcumX As Long
Dim I As Long
AcumulaX = 0
DescAcumulaX = 0
IndiceX = 0
IndiceAntX = 0
AcumX = 0
I = 0
rs.MoveFirst
Do While Not rs.EOF
rs.Edit
IndiceX = IndiceX + 1
GuardaValorX(IndiceX) = rs![ValorY]
AcumulaX = AcumulaX + rs![ValorY]
If IndiceX = 14 Then
rs("CalculoValor") = Round((AcumulaX / 14), 4)
rs.Update
rs.Requery
End If
MsgBox "IndiceX: " & IndiceX & Chr(13) & "GuardaValorXI: " & GuardaValorX(IndiceX) & Chr(13) & "ValorX: " & rs![ValorY] & Chr(13) & "AcumulaX: " & AcumulaX
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
Exit Sub
trata_erro:
Call MsgBox("Erro nº " & Err.Number & " - " & Err.Description)
'MsgBox "Cálculo concluído com sucesso..."
End Sub
Alguém pode ajudar?
Muito grato, abraços
Estou quebrando a cabeça com esse código. O Do While está em loop. O código não termina. Onde está errado. Ler uma tabela que tem 30 registros e atualiza alguns campos dependendo de certas condições. Mas o problema do caso é o loop.
Private Sub Comando10_Click()
Dim db As Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM [ValorMoedaY]")
Dim AcumulaX As Long
Dim DescAcumulaX As Long
Dim GuardaValorX(100) As Long
Dim IndiceX As Long
Dim IndiceAntX As Long
Dim AcumX As Long
Dim I As Long
AcumulaX = 0
DescAcumulaX = 0
IndiceX = 0
IndiceAntX = 0
AcumX = 0
I = 0
rs.MoveFirst
Do While Not rs.EOF
rs.Edit
IndiceX = IndiceX + 1
GuardaValorX(IndiceX) = rs![ValorY]
AcumulaX = AcumulaX + rs![ValorY]
If IndiceX = 14 Then
rs("CalculoValor") = Round((AcumulaX / 14), 4)
rs.Update
rs.Requery
End If
MsgBox "IndiceX: " & IndiceX & Chr(13) & "GuardaValorXI: " & GuardaValorX(IndiceX) & Chr(13) & "ValorX: " & rs![ValorY] & Chr(13) & "AcumulaX: " & AcumulaX
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
Exit Sub
trata_erro:
Call MsgBox("Erro nº " & Err.Number & " - " & Err.Description)
'MsgBox "Cálculo concluído com sucesso..."
End Sub
Alguém pode ajudar?
Muito grato, abraços