Boa tarde.
Tenho a seguinte função:
Public Function AtualizaTotSaldo()
Dim tb As Recordset
Set tb = CurrentDb.OpenRecordset("SELECT controle, CodContrib, ddata, MES, CFOP, NumEnt, QdeEnt, VlrtotBCSTEnt, NumSai, QdeSai, VlrUnitSai, VlrBCSTSai, QdeSaldo, QdeSaldoAnt, VlrUnitSaldo, VlrUnitSaldoAnt, TotalSaldo, TotalSaldoAnt FROM tbcontroledeestoque ORDER BY CodContrib, ddata, cfop, NumEnt, NumSai;")
Dim prod As String
Dim tsaldo As Double
Dim vlus As Double
Dim vbcs As Double
Dim VlrUnitSaldo As Double
Dim controle As String
Dim CodContrib As String
Forms!FrmImportar1!txtMensagem = "Atualizando Total Saldo.............."
Do While Not tb.EOF
prod = tb!CodContrib
tsaldo = Nz(tb!TotalSaldoAnt)
vlus = Nz(tb!VlrUnitSaldoAnt)
vbcs = 0
Do While tb!CodContrib = prod
tb.Edit
tb!VlrBCSTSai = tb!QdeSai * vlus
tb!TotalSaldo = tsaldo Nz(tb!VlrtotBCSTEnt, 0) - Nz(tb!VlrBCSTSai, 0)
If tb!QdeSaldo <> 0 Then
tb!VlrUnitSaldo = tb!TotalSaldo / tb!QdeSaldo
Else: tb!VlrUnitSaldo = 0
End If
tb!VlrUnitSai = vlus
tb.Update
tsaldo = tb!TotalSaldo
vlus = DLookup("[VlrUnitSaldo]", "[tb]", "[controle] >='" & [controle] & "'") ' o erro é aqui
tb.MoveNext
If tb.EOF Then Exit Do
Loop
Loop
tb.Close
Forms!FrmImportar1!txtMensagem = "Atualizada tbcontroledeestoque "
End Function
Quando mando executar dá o seguinte erro:
Erro em tempo de execução '3078':
O mecanismo de banco de dados do Microsoft Acess não pode
localizar a tabela de entrada ou consulta 'tb'. Verifique se ela existe e
se o nome foi digitado corretamente.
Quando mando depurar ela realça a linha
vlus = DLookup("[VlrUnitSaldo]", "[tb]", "[controle] >='" & [controle] & "'") '
Esse valor é o valor do registro anterior do campo VlrUnitSaldo e tb é a consulta criada no inicio da função.
Por favor alguém poderia me dar uma ajuda nesse problema, ou se houver uma outra maneira de eu pegar esse valor por favor
me ensinem
Grato
Elias
Tenho a seguinte função:
Public Function AtualizaTotSaldo()
Dim tb As Recordset
Set tb = CurrentDb.OpenRecordset("SELECT controle, CodContrib, ddata, MES, CFOP, NumEnt, QdeEnt, VlrtotBCSTEnt, NumSai, QdeSai, VlrUnitSai, VlrBCSTSai, QdeSaldo, QdeSaldoAnt, VlrUnitSaldo, VlrUnitSaldoAnt, TotalSaldo, TotalSaldoAnt FROM tbcontroledeestoque ORDER BY CodContrib, ddata, cfop, NumEnt, NumSai;")
Dim prod As String
Dim tsaldo As Double
Dim vlus As Double
Dim vbcs As Double
Dim VlrUnitSaldo As Double
Dim controle As String
Dim CodContrib As String
Forms!FrmImportar1!txtMensagem = "Atualizando Total Saldo.............."
Do While Not tb.EOF
prod = tb!CodContrib
tsaldo = Nz(tb!TotalSaldoAnt)
vlus = Nz(tb!VlrUnitSaldoAnt)
vbcs = 0
Do While tb!CodContrib = prod
tb.Edit
tb!VlrBCSTSai = tb!QdeSai * vlus
tb!TotalSaldo = tsaldo Nz(tb!VlrtotBCSTEnt, 0) - Nz(tb!VlrBCSTSai, 0)
If tb!QdeSaldo <> 0 Then
tb!VlrUnitSaldo = tb!TotalSaldo / tb!QdeSaldo
Else: tb!VlrUnitSaldo = 0
End If
tb!VlrUnitSai = vlus
tb.Update
tsaldo = tb!TotalSaldo
vlus = DLookup("[VlrUnitSaldo]", "[tb]", "[controle] >='" & [controle] & "'") ' o erro é aqui
tb.MoveNext
If tb.EOF Then Exit Do
Loop
Loop
tb.Close
Forms!FrmImportar1!txtMensagem = "Atualizada tbcontroledeestoque "
End Function
Quando mando executar dá o seguinte erro:
Erro em tempo de execução '3078':
O mecanismo de banco de dados do Microsoft Acess não pode
localizar a tabela de entrada ou consulta 'tb'. Verifique se ela existe e
se o nome foi digitado corretamente.
Quando mando depurar ela realça a linha
vlus = DLookup("[VlrUnitSaldo]", "[tb]", "[controle] >='" & [controle] & "'") '
Esse valor é o valor do registro anterior do campo VlrUnitSaldo e tb é a consulta criada no inicio da função.
Por favor alguém poderia me dar uma ajuda nesse problema, ou se houver uma outra maneira de eu pegar esse valor por favor
me ensinem
Grato
Elias