Usuário com melhor resposta
Exibe a mensagem de porduto salvo com sucesso, mas não altera a tabela

Pergunta
-
Boa tarde pessoal
Eu de novo com duvida em outro sistema.
Tenho um sistema onde tenho um formulário que uso para alterar e cadastrar endereços de produtos, parece que funciona normal até da a mensagem de endereço cadastrado com sucesso, mas quando consulto o item o endereço não foi alterado na tabela.
Vejam a imagem e o código abaixo:
Private Sub cmdCadNovoEndereco_Click() On Error Resume Next '// Verifica se os campos obrigatórios estão nulos If IsNull(Me.Cod_Interno_Item) Or _ IsNull(Me.Cod_Interno_Item) Or _ IsNull(Me.TxtNovoEndProduto) Or _ IsNull(Me.TxtNovoEndProduto) Then MsgBox "Digite o código do produto e informe o novo Endereço e tente novamente. ", vbInformation, "Sistema de Consulta de Produto - Informação": Exit Sub '// Variáveis Dim rs As DAO.Recordset '// Abre o recordset pelo produto selecionado na TXT "Cod_Interno_Item" Set rs = CurrentDb.OpenRecordset("Select Endereco_Item From Cadastro_Itens Where Enderco_Item = " & Me.Cod_Interno_Item(), dbOpenDynaset) rs.Edit 'Coloca a tabela em modo de edição rs![Endereco_Item] = Me.TxtNovoEndProduto.Value 'Atualiza o valor do campo rs.Update 'Salva a modificação '// Informa ao usuário MsgBox "Endereço do Produto atualizado com sucesso", vbInformation + vbOKOnly, "Sistema de Consulta de Produtos - Informação" '// Limpa o campo Novo Estoque Me.TxtNovoEndProduto = "" '// fecha o recordset e limpa a memória Set rs = Nothing: Close '// Atualiza as informações no formulário Call CmbCodInternoEndereco_AfterUpdate '// Encerra a sub definitivamente Exit Sub End Sub
Respostas
-
Bom dia Pessoal..
Problema resolvido, muito obrigado Avelino pela ajuda..
Veja como ficou o código.
Private Sub cmdCadNovoEndereco_Click() On Error Resume Next '// Verifica se os campos obrigatórios estão nulos If IsNull(Me.CmbCodInternoEndereco.Column(0)) Or _ Me.CmbCodInternoEndereco.Column(0) = "" Or _ IsNull(Me.TxtNovoEndProduto.Value) Or _ Me.TxtNovoEndProduto.Value = "" Then MsgBox "Escolha o código do produto e informe o novo Endereço e tente novamente. ", vbInformation, "Sistema de Consulta de Produto - Informação": Exit Sub End If '// Variáveis Dim rs As DAO.Recordset '// Abre o recordset pelo produto selecionado na TXT "Cod_Interno_Item" Set rs = CurrentDb.OpenRecordset("Select Endereco_Item From Cadastro_Itens Where Cod_Interno_Item='" & Me.CmbCodInternoEndereco.Column(1) & "'", dbOpenDynaset) rs.Edit 'Coloca a tabela em modo de edição rs![Endereco_Item] = Me.TxtNovoEndProduto.Value 'Atualiza o valor do campo rs.Update 'Salva a modificação '// Informa ao usuário MsgBox "Endereço do Produto atualizado com sucesso", vbInformation + vbOKOnly, "Sistema de Consulta de Produtos - Informação" '// Limpa o campo Novo Estoque Me.TxtNovoEndProduto = "" '// fecha o recordset e limpa a memória Set rs = Nothing: Close '// Atualiza as informações no formulário Call CmbCodInternoEndereco_AfterUpdate '// Encerra a sub definitivamente Exit Sub End Sub
- Marcado como Resposta Samuel C. Ribeiro terça-feira, 26 de agosto de 2014 11:07
Todas as Respostas
-
Olá, Samuel!
o formulário esta acoplado a consulta/tabela ? se sim, um simples comando resolve.
docmd.RunCommand acCmdSaveRecord
Agora, se tiver usando campos não acoplados, utilize uma consulta de ação UPDATE. Exemplo:
Currentdb.execute "UPDATE Cadatro_itens SET Endereco_item = '" & me!txNovoEndProduto & "' WHERE Cod_interno = " & me!cod_interno & ";"
Nota: Faça um backup antes de testar.
Aguardamos.
------------------------------------------
Visite o site UsandoAccess -
Olá, Samuel!
o formulário esta acoplado a consulta/tabela ? se sim, um simples comando resolve.
docmd.RunCommand acCmdSaveRecord
Agora, se tiver usando campos não acoplados, utilize uma consulta de ação UPDATE. Exemplo:
Currentdb.execute "UPDATE Cadatro_itens SET Endereco_item = '" & me!txNovoEndProduto & "' WHERE Cod_interno = " & me!cod_interno & ";"
Nota: Faça um backup antes de testar.
Aguardamos.
------------------------------------------
Visite o site UsandoAccessBoa tarde Avelino Sampaio..
Muito Obrigado pelo o retorno de novo..
Mas infelizmente continua não alterando o endereço.
Seria porque eu estou buscando as informações na mesma tabela que estou tentando alterar?
-
-
Experimente assim:
me!NomeCampoDaCaixaAmarela = me!NomeCampoDaCaixaVerde
docmd.RunCommand acCmdSaveRecord
me!me!NomeCampoDaCaixaVerde = ""
Aguardamos
Não alterou novamente Avelino, veja o código como ficou:
Private Sub cmdCadNovoEndereco_Click() On Error Resume Next '// Verifica se os campos obrigatórios estão nulos If IsNull(Me.Cod_Interno_Item) Or _ IsNull(Me.Cod_Interno_Item) Or _ IsNull(Me.TxtNovoEndProduto) Or _ IsNull(Me.TxtNovoEndProduto) Then MsgBox "Escolha o código do produto e informe o novo Endereço e tente novamente. ", vbInformation, "Sistema de Consulta de Produto - Informação": Exit Sub End If '// Variáveis Dim rs As DAO.Recordset '// Abre o recordset pelo produto selecionado na TXT "Cod_Interno_Item" Me!TxtEndProdAtual = Me!TxtNovoEndProduto DoCmd.RunCommand acCmdSaveRecord Me!Me!TxtNovoEndProduto = "" rs.Edit 'Coloca a tabela em modo de edição rs![Endereco_Item] = Me.TxtNovoEndProduto.Value 'Atualiza o valor do campo rs.Update 'Salva a modificação '// Informa ao usuário MsgBox "Endereço do Produto atualizado com sucesso", vbInformation + vbOKOnly, "Sistema de Consulta de Produtos - Informação" '// Limpa o campo Novo Estoque Me.TxtNovoEndProduto = "" '// fecha o recordset e limpa a memória Set rs = Nothing: Close '// Atualiza as informações no formulário Call CmbCodInternoEndereco_AfterUpdate '// Encerra a sub definitivamente Exit Sub End Sub
-
Experimente assim:
me!NomeCampoDaCaixaAmarela = me!NomeCampoDaCaixaVerde
docmd.RunCommand acCmdSaveRecord
me!me!NomeCampoDaCaixaVerde = ""
Aguardamos
Não alterou novamente Avelino, veja o código como ficou:
Private Sub cmdCadNovoEndereco_Click() On Error Resume Next '// Verifica se os campos obrigatórios estão nulos If IsNull(Me.Cod_Interno_Item) Or _ IsNull(Me.Cod_Interno_Item) Or _ IsNull(Me.TxtNovoEndProduto) Or _ IsNull(Me.TxtNovoEndProduto) Then MsgBox "Escolha o código do produto e informe o novo Endereço e tente novamente. ", vbInformation, "Sistema de Consulta de Produto - Informação": Exit Sub End If '// Variáveis Dim rs As DAO.Recordset '// Abre o recordset pelo produto selecionado na TXT "Cod_Interno_Item" Me!TxtEndProdAtual = Me!TxtNovoEndProduto DoCmd.RunCommand acCmdSaveRecord Me!Me!TxtNovoEndProduto = "" rs.Edit 'Coloca a tabela em modo de edição rs![Endereco_Item] = Me.TxtNovoEndProduto.Value 'Atualiza o valor do campo rs.Update 'Salva a modificação '// Informa ao usuário MsgBox "Endereço do Produto atualizado com sucesso", vbInformation + vbOKOnly, "Sistema de Consulta de Produtos - Informação" '// Limpa o campo Novo Estoque Me.TxtNovoEndProduto = "" '// fecha o recordset e limpa a memória Set rs = Nothing: Close '// Atualiza as informações no formulário Call CmbCodInternoEndereco_AfterUpdate '// Encerra a sub definitivamente Exit Sub End Sub
Avelino
Tem como eu compartilhar o meu bd com você via mega?
Para você dar uma olhada?
-
-
Mande zipado para:
avelino(arroba)usandoaccess(ponto)com(ponto)br
Nota: Mande somente a tabela e o formulário em questão
No aguardo
Boa tarde Avelino..
Você conseguiu acessar meu projeto pelo compartilhamento que te enviei?
- Editado Samuel C. Ribeiro quarta-feira, 20 de agosto de 2014 16:19
-
Mande zipado para:
avelino(arroba)usandoaccess(ponto)com(ponto)br
Nota: Mande somente a tabela e o formulário em questão
No aguardo
Boa tarde Avelino..
Você conseguiu acessar meu projeto pelo compartilhamento que te enviei?
Bom dia pessoal..
Ainda continuo tentando fazer com que o formulário em questão altere o endereço informado.
Mas infelizmente ainda não, ja alterei o código de todos os jeitos postados acima e nada.
Alguém tem alguma ideia do que fazer?
no aguardo
-
Bom dia Pessoal..
Problema resolvido, muito obrigado Avelino pela ajuda..
Veja como ficou o código.
Private Sub cmdCadNovoEndereco_Click() On Error Resume Next '// Verifica se os campos obrigatórios estão nulos If IsNull(Me.CmbCodInternoEndereco.Column(0)) Or _ Me.CmbCodInternoEndereco.Column(0) = "" Or _ IsNull(Me.TxtNovoEndProduto.Value) Or _ Me.TxtNovoEndProduto.Value = "" Then MsgBox "Escolha o código do produto e informe o novo Endereço e tente novamente. ", vbInformation, "Sistema de Consulta de Produto - Informação": Exit Sub End If '// Variáveis Dim rs As DAO.Recordset '// Abre o recordset pelo produto selecionado na TXT "Cod_Interno_Item" Set rs = CurrentDb.OpenRecordset("Select Endereco_Item From Cadastro_Itens Where Cod_Interno_Item='" & Me.CmbCodInternoEndereco.Column(1) & "'", dbOpenDynaset) rs.Edit 'Coloca a tabela em modo de edição rs![Endereco_Item] = Me.TxtNovoEndProduto.Value 'Atualiza o valor do campo rs.Update 'Salva a modificação '// Informa ao usuário MsgBox "Endereço do Produto atualizado com sucesso", vbInformation + vbOKOnly, "Sistema de Consulta de Produtos - Informação" '// Limpa o campo Novo Estoque Me.TxtNovoEndProduto = "" '// fecha o recordset e limpa a memória Set rs = Nothing: Close '// Atualiza as informações no formulário Call CmbCodInternoEndereco_AfterUpdate '// Encerra a sub definitivamente Exit Sub End Sub
- Marcado como Resposta Samuel C. Ribeiro terça-feira, 26 de agosto de 2014 11:07