LOOP NÃO GRAVA TODOS

XAVIER 29/12/2015 10:18:54
#455605
Olá pessoal!

Após a auto-soma das quantidades dos itens, eu preciso gravar o resultado na tabela estoque. O loop quantifica os ítens direitinho, porém ao passar pela sub de gravação na tabela, dá pau. Na verdade grava apenas o primeiro item encontrado na tabela estoque. Segue o código para análise. Se alguém puder me dar uma luz, agradeço.

Option Explicit

Dim sItem As String
Dim st As Integer


Private Sub AJUSTAR_Click()
[ô]
Conectar
Set rsAUX.ActiveConnection = dbFab
rsAUX.Open [Ô]Select saida_aux.ns, saida_aux.item, sum(qtde) as total from saida_aux GROUP by saida_aux.ns, saida_aux.item[Ô]
rsAUX.Filter = [Ô]ns= [ô][Ô] & cboNS.Text & [Ô][ô][Ô]

Do Until rsAUX.EOF

sItem = rsAUX.Fields([Ô]item[Ô])
st = rsAUX.Fields([Ô]total[Ô]).Value

GRAVAR_SAIDA_ITENS

rsAUX.MoveNext
Loop

End Sub



Sub GRAVAR_SAIDA_ITENS()
[ô]
Conectar
Set rsITEM.ActiveConnection = dbFab
rsITEM.Open [Ô]select * from estoque[Ô], dbFab, adOpenStatic, adLockOptimistic
rsITEM.Filter = [Ô]item=[ô][Ô] & sItem & [Ô][ô][Ô]

rsITEM.Fields([Ô]saida[Ô]) = st

rsITEM.Update

End Sub
WEBMASTER 29/12/2015 11:24:28
#455609
Resposta escolhida
Por que nao fazer de um jeito mais facil ?

 update estoque set saida = [Ô] & st & [Ô] where item = [ô][Ô] & sItem & [Ô][ô][Ô]


Faça um update direto e pronto, nao precisa ficar abrindo recordset para coisas desse tipo, voce nao vai navegar nos registros, somente atualizar, entao...
XAVIER 29/12/2015 11:47:52
#455610
Obrigado !
Vou tentar desta forma!
ERINALDO 29/12/2015 13:27:04
#455612
acho que esta faltando você pedir para editar e depois salvar os dados. se for um novo registro coloca rsAUX.addnew e depois o update

Option Explicit

Dim sItem As String
Dim st As Integer


Private Sub AJUSTAR_Click()
[ô]
Conectar
Set rsAUX.ActiveConnection = dbFab
rsAUX.Open [Ô]Select saida_aux.ns, saida_aux.item, sum(qtde) as total from saida_aux GROUP by saida_aux.ns, saida_aux.item[Ô]
rsAUX.Filter = [Ô]ns= [ô][Ô] & cboNS.Text & [Ô][ô][Ô]

Do Until rsAUX.EOF

[txt-color=#e80000]rsAUX.edit[/txt-color]
sItem = rsAUX.Fields([Ô]item[Ô])
st = rsAUX.Fields([Ô]total[Ô]).Value

GRAVAR_SAIDA_ITENS

[txt-color=#e80000]rsAUX.update[/txt-color]
rsAUX.MoveNext
Loop

End Sub



Sub GRAVAR_SAIDA_ITENS()
[ô]
Conectar
Set rsITEM.ActiveConnection = dbFab
rsITEM.Open [Ô]select * from estoque[Ô], dbFab, adOpenStatic, adLockOptimistic
rsITEM.Filter = [Ô]item=[ô][Ô] & sItem & [Ô][ô][Ô]

rsITEM.Fields([Ô]saida[Ô]) = st

rsITEM.Update

End Sub
OMAR2011 29/12/2015 14:11:21
#455613
Tenho a leve impressão que [txt-color=#e80000]Ado[/txt-color] não tem [txt-color=#e80000]Edit.[/txt-color]
XAVIER 29/12/2015 14:13:47
#455614
Obrigado a todos.
Tópico encerrado , respostas não são mais permitidas