MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    avatar
    Henrique Bachour
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/11/2015

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Henrique Bachour 17/11/2015, 13:40

    Olá, parceiros!

    Estou lutando há dias para construir um código que atualize um registro de uma tabela considerando os valores passados para cada campo de chave da mesma.

    Mas, todos os códigos tentados resultam no mesmo: são alterados todos os registros que possuem anteriormente o mesmo valor no campo alterado de um único registro.

    Explicando melhor:
    Há um Formulário principal (FM_CADASTROOBRA) que exibe em lista os dados da Tabela OBRACOMODO num subformulário (SF_OBRACOMODO).
    Quando eu dou duplo clique numa linha desse subformulário, eu abro um formulário popup (FM_OBRACOMODO) com os dados da linha dispostos num formulário normal.
    O usuário altera os dados que quiser, por exemplo o campo Forms!FM_OBRACOMODO!CDPAV.
    Ao fechar o Formulário Popup (FM_OBRACOMODO) o código abaixo é executado.
    Mas, a retornar o controle para o Formulário principal, todos os registros que possuíam anteriormente o mesmo valor que tinha o campo CDPAV, também são alterados na tabela e, logicamente no Subform.
    Em suma, as condições definidas na cláusula WHERE não estão sendo respeitadas.

    Agradeço muitíssimo qualquer ajuda que vier.

    Abs
    Henrique


    Seguem as partes principais de dois dos Códigos já tentados e que produziram o mesmo efeito:

    CurrentDb.Execute "UPDATE OBRACOMODO " & _
      "Set [OBRACOMODO].[CDPAV]=(""" & Forms!FM_OBRACOMODO!CDPAV & """), [OBRACOMODO].[CDPAD]=(""" & Forms!FM_OBRACOMODO!CDPAD & """),[OBRACOMODO].[CDREV] = (""" & Forms!FM_OBRACOMODO!CDREV & """) WHERE [OBRACOMODO].[CDOBRA] = " & Forms!FM_OBRACOMODO!CDOBRA & " And [OBRACOMODO].[SQCOM] = " & Forms!FM_OBRACOMODO!SQCOM & ""


    *****************************

    Set rst = dbs.OpenRecordset("SELECT * FROM OBRACOMODO WHERE CDOBRA = " & Forms!FM_OBRACOMODO!CDOBRA & _
       "AND CDCOM = " & Forms!FM_OBRACOMODO!CDCOM & _
       "AND SQCOM = " & Forms!FM_OBRACOMODO!SQCOM)

           rst.Edit
           rst!CDPAV = Forms!FM_OBRACOMODO!CDPAV
           rst!CDPAD = Forms!FM_OBRACOMODO!CDPAD
           rst!CDREV = Forms!FM_OBRACOMODO!CDREV
           rst!AREA = Forms!FM_OBRACOMODO!AREA
           rst!PEDIR = Forms!FM_OBRACOMODO!PEDIR
           rst!CDREB = Forms!FM_OBRACOMODO!CDREB
           rst!ARREB = Forms!FM_OBRACOMODO!ARREB
           rst.Update
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Cláudio Más 17/11/2015, 13:52

    Olá,

    Seria melhor usar a chave primária.
    No exemplo abaixo, é o campo chamado ID, que deve estar presente no sub-formulário, mesmo que invisível:

    WHERE [OBRACOMODO].[ID] = " & Forms!FM_OBRACOMODO!SF_OBRACOMODO.Forms!ID
    avatar
    Henrique Bachour
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/11/2015

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Henrique Bachour 17/11/2015, 14:03

    Cláudio,

    Todos os campos da chave primária da tabela estão na cláusula Where e possuem valor no momento que o código é executado.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Cláudio Más 17/11/2015, 14:25

    Então a chave primária é composta?
    A tabela não tem um campo Numeração Automática?

    A cláusula WHERE não deveria estar referenciando os campos no sub-formulário SF_OBRACOMODO?

    Se puder enviar uma cópia do arquivo somente com os objetos envolvidos, facilita com a solução.
    avatar
    Henrique Bachour
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/11/2015

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Henrique Bachour 17/11/2015, 15:58

    Cláudio,

    Conforme foi explicado no primeiro email, a cláusula WHERE referencia os campos do formulário POPUP onde o código é executado, AO FECHAR.

    Durante o debuging posso ver os valores sendo passados pelos campos. Não é esse o problema.

    A Chave da tabela é composta pelos campos abaixo:

    CDOBRA
    CDCOM
    SQCOM

    O campo SQCOM é de numeração automática mas isso também não importa pois estou atualizando registro já existente e não incluindo registros.

    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Cláudio Más 17/11/2015, 17:46

    Henrique,

    O campo numeração automática talvez seja até mais importante para atualização de registros existentes, pois garante que estará atualizando um único registro nesse caso.

    Entendi que a instrução UPDATE referencia os campos do formulário POPUP para atualização dos valores daquele registro, mas a identificação do registro a ser atualizado está no sub-formulário SF_OBRACOMODO. Esse formulário se mantém aberto após abrir o POPUP?

    Pode até continuar insistindo na chave composta, mas certamente deverá buscar a identificação do registro a ser atualizado no sub-formulário SF_OBRACOMODO, e utilizar essa identificação na cláusula WHERE.

    Conforme minha mensagem anterior, a sintaxe é a seguinte:

    WHERE [OBRACOMODO].[SQCOM ] = " & Forms!FM_OBRACOMODO!SF_OBRACOMODO.Forms!SQCOM
    avatar
    Henrique Bachour
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/11/2015

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Henrique Bachour 17/11/2015, 18:46

    Obrigado, Cláudio... já encontrei o erro: o campo que eu estava alterando era o único que estava acoplado no formulário POPUP.


    COMO FAÇO PARA DAR A QUESTÃO COMO RESOLVIDA?


    Última edição por Henrique Bachour em 17/11/2015, 18:50, editado 1 vez(es)
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Cláudio Más 17/11/2015, 18:48

    De nada.
    avatar
    Henrique Bachour
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 16/11/2015

    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Henrique Bachour 18/11/2015, 11:27

    Obrigado, Cláudio... já encontrei o erro: o campo que eu estava alterando era o único que estava acoplado no formulário POPUP.

    Conteúdo patrocinado


    [Resolvido]UPDATE em Tabela não respeita as condições do WHERE Empty Re: [Resolvido]UPDATE em Tabela não respeita as condições do WHERE

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 25/11/2024, 14:21