LOOP NÃO GRAVA TODOS
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
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
Por que nao fazer de um jeito mais facil ?
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...
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...
Obrigado !
Vou tentar desta forma!
Vou tentar desta forma!
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
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
Tenho a leve impressão que [txt-color=#e80000]Ado[/txt-color] não tem [txt-color=#e80000]Edit.[/txt-color]
Obrigado a todos.
Tópico encerrado , respostas não são mais permitidas