USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Erro em SQL simples mas não pra mim.rsrs
Polack
EMBU DAS ARTES
SP - BRASIL
ENUNCIADA !
Postada em 22/07/2011 15:15 hs         
Oi pessoal é o seguinte, estou tentando dar baixa na tabela castro de produtos através da tela de vendas, estava tudo funcionando, e não sei onde mexi que começou dar erro, será que alguem consegue descobrir o erro.

Ahh antes que alguem fale pra eu usar ADO, quero dizer que, ja estou trabalhando em um novo projeto usando ADO, mas esse ja estava funcionando no cliente, ele pediu pra fazer umas alterações..foi onde eu arrumei esse problema.
segue o código que gera o erro:
Dim db As Database
Dim codigo As String
Dim sql As String
Dim localiza As String
Dim tabcadcli As Recordset
Set db = OpenDatabase(App.Path & "BDSdados.mdb", False, False)
codigo = TxtCódigoDeBarras.Text
If codigo <> "" Then
Set tabcadcli = db.OpenRecordset("CadProdutos")
tabcadcli.Index = ("CodigoDeBarras")
tabcadcli.Seek "=", codigo
If tabcadcli.NoMatch Then
MsgBox "Produto não cadastrado"
Else
localiza = TxtCódigoDeBarras.Text
sql = "SELECT Descrição, quantidadeemestoque, FROM CadProdutos WHERE Descrição LIKE " & localiza
DtCadProdutos.RecordSource = sql
TxtQuantidadeEmEstoque.Text = tabcadcli("QuantidadeEmestoque")
tabcadcli.Update = ("QuantidadeEmestoque") - TxtQuantidadeVendida.Text 'O ERRO OCORRE NESTA LINHA
DtCadProdutos.EditMode
DtCadProdutos.Refresh
End If
End If
Desde ja grato a todos.
   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
ENUNCIADA !
Postada em 22/07/2011 21:38 hs            
Você precisa colocar a mensagem de erro, mas veja se é isto:

Se usa o Jet, não precisa localizar o produto, com a sql, o Seek, já achou, ai, quando usa a sql, vc coloca LIKE na consulta, ele vai trazer vários, vai mexer em estoque de produto diferente.
Se após a localização, quer atualizar o Data, imagino que o DtCadProdutos, seja um componente Data, que tem uma DbGrid ou uma MsFlex, basta o Refresh.

Veja, baseado nas poucas informações que passou:

abcadcli.Index = ("CodigoDeBarras")
tabcadcli.Seek "=", codigo
If tabcadcli.NoMatch Then
MsgBox "Produto não cadastrado"
Else
tabcadcli.Edit
tabcadcli!quantidadeemestoque = Val(TxtQuantidadeVendita.Text)
tabcadcli.Update
DtCadProdutos.Refresh

AQUI O REFRESH DA GRADE, se houver.

End If

vlu//



   
Polack
não registrado
ENUNCIADA !
Postada em 23/07/2011 01:15 hs   
Valeu LCRamos! adicionei mais uma linhazinha e fucincionou perfeitamente obrigado.
O código completo ficou assim: Para efeito de estudos.

Private Sub CmdAdicionarItem_Click()
Dim codigo As String
TxtCódigoDeBarras.SetFocus
Set db = OpenDatabase(App.Path & "BDSdados.mdb", False, False)
codigo = TxtCódigoDeBarras.Text
If codigo <> "" Then
Set tabcadcli = db.OpenRecordset("CadProdutos")
tabcadcli.Index = ("CodigoDeBarras")
tabcadcli.Seek "=", codigo
If tabcadcli.NoMatch Then
MsgBox "Produto não cadastrado"
Else
TxtDescrição.Text = tabcadcli("Descrição")
TxtValorUnitário.Text = tabcadcli("PreçoDeVenda")
TxtUnidade.Text = tabcadcli("Unidade")
tabcadcli.Edit
tabcadcli!QuantidadeEmEstoque = tabcadcli!QuantidadeEmEstoque - Val(TxtQuantidadeVendida.Text)
tabcadcli.Update
DtCadProdutos.Refresh
End If
Else
codigo = ""
End If

End Sub

Perfeito..mais uma vez Obrigado LCRamos

Topico Fechado
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página