Caros amigos,
Mais uma vez pedindo ajuda. No código abaixo que peguei aqui e estou adaptando está dando "Erro em tempo de execução 9: Subscrito forna do intervalo" na linha GuardaValorX(IndiceX) = rs![ValorX]. Sei que tem haver com o vetor/array, já pesquisei muito aqui e fora e nada consegui. Sei que para vocês isso é um café pequeno. Este código ler uma tabela, faz alguns comparativos/testes e grava em um campo.
Alguém pode me iluminar nesta tarefa?
Private Sub Comando10_Click()
Dim db As Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rsV As DAO.Recordset
Set db = CurrentDb()
Dim contaReg As Integer
Set rs = db.OpenRecordset("SELECT * FROM [ValorMoedaY]")
Set rsV = db.OpenRecordset("ValorMoedaY")
contaReg = rsV.RecordCount
'contaReg = rs.RecordCount
Dim AcumulaX As Integer
Dim DescAcumulaX As Integer
Dim GuardaValorX(24) As Integer
Dim IndiceX As Integer
Dim IndiceAntX As Integer
AcumulaX = 0
DescAcumulaX = 0
IndiceX = 0
IndiceAntX = 0
MsgBox "NÚMERO DE REGISTROS DA TABELA VALORMOEDAY: " & contaReg
Do While Not rs.EOF
rs.Edit
IndiceX = IndiceX + 1
AcumulaX = AcumulaX + rs![ValorX]
If IndiceX = 15 Then
rs("CalculoValor") = AcumulaX / 14
End If
If IndiceX > 15 Then
IndiceAntX = IndiceX - 14
DescAcumulaX = AcumulaX - GuardaValorX(IndiceAntX)
rs("CalculoValor") = DescAcumulaX / 14
End If
'MsgBox "IndiceX: " & IndiceX & " AcumulaX: " & AcumulaX & " IndiceAntX: " & IndiceAntX & " DescAcumulaX: " & DescAcumulaX & " GuardaValorX: " & GuardaValorX(IndiceAntX)
GuardaValorX(IndiceX) = rs![ValorX] '<<<<<<<----------<<<<---------------------- é aqui -------<<<<------------- é aqui -------<<<<--------
rs.Update
rs.Requery
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
rs2.Close
Set rs2 = Nothing
db.Close
Set db = Nothing
MsgBox "Cálculo concluído com sucesso...Tecle ENTER"
'MsgBox "TERMINADO..."
Exit Sub
trata_erro:
Call MsgBox("Erro nº " & Err.Number & " - " & Err.Description)
'MsgBox "Cálculo concluído com sucesso..."
End Sub
Mais uma vez pedindo ajuda. No código abaixo que peguei aqui e estou adaptando está dando "Erro em tempo de execução 9: Subscrito forna do intervalo" na linha GuardaValorX(IndiceX) = rs![ValorX]. Sei que tem haver com o vetor/array, já pesquisei muito aqui e fora e nada consegui. Sei que para vocês isso é um café pequeno. Este código ler uma tabela, faz alguns comparativos/testes e grava em um campo.
Alguém pode me iluminar nesta tarefa?
Private Sub Comando10_Click()
Dim db As Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim rsV As DAO.Recordset
Set db = CurrentDb()
Dim contaReg As Integer
Set rs = db.OpenRecordset("SELECT * FROM [ValorMoedaY]")
Set rsV = db.OpenRecordset("ValorMoedaY")
contaReg = rsV.RecordCount
'contaReg = rs.RecordCount
Dim AcumulaX As Integer
Dim DescAcumulaX As Integer
Dim GuardaValorX(24) As Integer
Dim IndiceX As Integer
Dim IndiceAntX As Integer
AcumulaX = 0
DescAcumulaX = 0
IndiceX = 0
IndiceAntX = 0
MsgBox "NÚMERO DE REGISTROS DA TABELA VALORMOEDAY: " & contaReg
Do While Not rs.EOF
rs.Edit
IndiceX = IndiceX + 1
AcumulaX = AcumulaX + rs![ValorX]
If IndiceX = 15 Then
rs("CalculoValor") = AcumulaX / 14
End If
If IndiceX > 15 Then
IndiceAntX = IndiceX - 14
DescAcumulaX = AcumulaX - GuardaValorX(IndiceAntX)
rs("CalculoValor") = DescAcumulaX / 14
End If
'MsgBox "IndiceX: " & IndiceX & " AcumulaX: " & AcumulaX & " IndiceAntX: " & IndiceAntX & " DescAcumulaX: " & DescAcumulaX & " GuardaValorX: " & GuardaValorX(IndiceAntX)
GuardaValorX(IndiceX) = rs![ValorX] '<<<<<<<----------<<<<---------------------- é aqui -------<<<<------------- é aqui -------<<<<--------
rs.Update
rs.Requery
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
rs2.Close
Set rs2 = Nothing
db.Close
Set db = Nothing
MsgBox "Cálculo concluído com sucesso...Tecle ENTER"
'MsgBox "TERMINADO..."
Exit Sub
trata_erro:
Call MsgBox("Erro nº " & Err.Number & " - " & Err.Description)
'MsgBox "Cálculo concluído com sucesso..."
End Sub