EDITAR REGISTRO NA TABELA

CHARLESTON10 05/01/2011 16:48:13
#361238
Nao estou conseguindo editar um produto existente na tabela.
Estou fazendo um Frente Caixa, a rotina abaixo verifica se o produto ja foi adicionado
estou usando uma tabela temporaria que guarda os produtos adicionados
o codigo aqui verifica se o produto foi adicionado caso foi ele somente edita os dados existente e nao adiciona o produto novamente
mas nao esta dando certo, nao consegui ver o erro:

veja a rotina

  Private Sub VerificaPro_ADD()
With tbTemp
Do While .EOF = False
If lblCodigoPro.Caption = !codigo_produto Then
tbTemp.Close
[ô]move para o produto existente na lista
SQLEDIT = [Ô]SELECT * FROM TEMPORARIO WHERE CODIGO_PRODUTO =[ô][Ô] & _
lblCodigoPro.Caption & [Ô][ô][Ô]

[ô]edita a qtde e o total
!quantidade = !quantidade + txtQtde.Text
!total = !total + lblTotal.Caption
.UpdateBatch
End If
.MoveNext
Loop
End With
End Sub


Tem alguma outra maneira para fazer isso?

CHARLESTON10 05/01/2011 17:45:53
#361251
^ up !
PDUARTE9 05/01/2011 18:26:50
#361261
Não daria colocando um .Edit?!
CHARLESTON10 05/01/2011 18:28:20
#361262
Não pois estou usando conexao ADO e edit nao tem, mas tem somente em DAO
o UpdateBatch funcionada como o edit
EDUARDOVB 05/01/2011 18:40:22
#361264
.refresh
CHARLESTON10 05/01/2011 18:42:25
#361265
ja tentei mas nao deu certo tambem, eu testei uma coisa aqui, parece que o loop nao esta funcionado
coloquei uma msgbox depois da condição IF porem nada funcionou, o certo é fazer com outro modo, ja que esse nao esta dando certo..

alguem teria outro método ?

vlw pessoal!
CHARLESTON10 06/01/2011 09:09:00
#361315
^ <
EXPERT 06/01/2011 09:36:43
#361325
Olá amigo ...

Fiz o seguinte código e consegui atualizar os campos ...

Só não testei em um ambiente multiusuário

  Private Sub Command1_Click()
Dim cnn As New ADODB.Connection
Dim rstTeste As New ADODB.Recordset
Dim strAux As String

cnn.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BIBLIO 2007.mdb;Persist Security Info=False[Ô]
rstTeste.Open [Ô]SELECT teste, teste1 FROM teste [Ô], cnn, adOpenForwardOnly, adLockOptimistic

While Not rstTeste.EOF
strAux = rstTeste!teste
rstTeste!teste = rstTeste!teste1
rstTeste!teste1 = strAux
rstTeste.Update

Debug.Print rstTeste!teste & [Ô] [Ô] & rstTeste!teste1
rstTeste.MoveNext
Wend
End Sub


FICA COM DEUS!!!!
CHARLESTON10 07/01/2011 15:20:01
#361561
CONSEGUI PESSOAL
Ao invés de eu fazer um loop eu redirecionei o cursor usando a função SQL, da tabela para o item encontrado e assim verifiquei se o produto foi adicionado ou não.

 Private Sub Verifica()
[ô]verifica se tem o produto adicionado
[ô]Se sim | editar
[ô]Se nao | adicionar
Dim SQLVERIFICA As String

SQLVERIFICA = [Ô]SELECT * FROM TEMPORARIO WHERE CODIGO_PRODUTO =[ô][Ô] & _
lblCodigoPro.Caption & [Ô][ô][Ô]

tbTemp.Close
tbTemp.Open SQLVERIFICA, Conexao, adOpenDynamic, adLockOptimistic

If tbTemp.EOF = False Then
Call EditarProduto_Lista
Else
Call AdicionaProduto_Lista
End If
End Sub


valeu pela ajuda pessoal!
Tópico encerrado , respostas não são mais permitidas