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
|
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
|
|
|
|