none
Exibe a mensagem de porduto salvo com sucesso, mas não altera a tabela RRS feed

  • 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

    terça-feira, 19 de agosto de 2014 15:55

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

    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

    terça-feira, 19 de agosto de 2014 16:36
  • 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

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

    terça-feira, 19 de agosto de 2014 16:56
  • Experimente assim:

    me!NomeCampoDaCaixaAmarela = me!NomeCampoDaCaixaVerde

    docmd.RunCommand acCmdSaveRecord

    me!me!NomeCampoDaCaixaVerde = ""

    Aguardamos

    terça-feira, 19 de agosto de 2014 17:25
  • 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

    terça-feira, 19 de agosto de 2014 17:40
  • 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?

    terça-feira, 19 de agosto de 2014 19:25
  • Mande zipado para:

    avelino(arroba)usandoaccess(ponto)com(ponto)br

    Nota:  Mande somente a tabela e o formulário em questão

    No aguardo

    quarta-feira, 20 de agosto de 2014 10:15
  • 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?


    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

    segunda-feira, 25 de agosto de 2014 11:05
  • 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

    terça-feira, 26 de agosto de 2014 11:07