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


4 participantes

    Não executar código em campo vazio

    avatar
    vailson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 160
    Registrado : 08/05/2015

    Não executar código em campo vazio Empty Não executar código em campo vazio

    Mensagem  vailson 22/5/2017, 18:46

    Olá,
    tenho um formulário que serve para atualização de dados, caso o usuário resolva editar uma informação que ele lançou anteriormente.
    ocorre que um dos campos pode estar vazio ou ter suas informações apagadas pelo usuário.
    Como fazer o UPDATE entender isso?
    Código:
    Dim DB As DAO.Database
    Set DB = CurrentDb()
    DB.Execute "UPDATE produtividade SET pessoas= " & Me.pessoas & " where produtividade.codproduti= " & Me.codProduti & ""
    DB.Execute "UPDATE produtividade SET opo= " & Me.opo & " where produtividade.codproduti= " & Me.codProduti & ""
    MsgBox "Deseja confirmar as alterações de produtividade?", vbCritical, "Atenção"
    DoCmd.Close
    'Forms![Telainicial].Refresh
    End Sub

    Dessa forma aí, caso o campo "opo", por exemplo, esteja vazio, o código dá erro. E, caso eu precise que o conteúdo dele seja deletado? O ideal seria que o UPDATE gravasse nada... Como fazer isso?

    Obrigado
    ronaldojr1
    ronaldojr1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 01/08/2011

    Não executar código em campo vazio Empty Re: Não executar código em campo vazio

    Mensagem  ronaldojr1 22/5/2017, 19:18

    tente usar a funcao nz. exemplo:
    Código:

    DB.Execute "UPDATE produtividade SET opo= " & nz(Me.opo,"") & " where produtividade.codproduti= " & Me.codProduti & ""
    'a funcao nz substitui o nulo por qualquer outro valor. nz(campo,valorSeNulo)
    avatar
    vailson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 160
    Registrado : 08/05/2015

    Não executar código em campo vazio Empty Re: Não executar código em campo vazio

    Mensagem  vailson 23/5/2017, 02:36

    Certo, até aí tudo bem, primeira parte solucionada. Agora imagine que o dado já existe e que eu preciso apagá-lo.
    Como eu insiro um valor nulo se o campo estiver nulo?
    Exemplo: opo tem o valor 2, mas o usuário deseja apagar e deixar em branco (não pode ser 0)
    nz(campo, nulo)

    Como fazer?
    Obrigado!
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Não executar código em campo vazio Empty Re: Não executar código em campo vazio

    Mensagem  philipp.moreira 23/5/2017, 05:25

    Vê se isto ajuda:
    Código:
         Dim DB As DAO.Database
          Dim strSQL_Update As String
          
          Set DB = CurrentDb()
          strSQL_Update = "UPDATE Produtividade SET " _
                                              & "pessoas= '" & Me.pessoas & "' " _
                                              & ",opo= " & IIf(Me.opo <> "", Me.opo, Null) & " " _
                                        & "WHERE ( codproduti= " & Me.codProduti & " ) "
                
          DoCmd.RunSQL (strSQL_Update)
          MsgBox "Deseja confirmar as alterações de produtividade?", vbCritical, "Atenção"
          DoCmd.Close
          'Forms![Telainicial].Refresh
    avatar
    vailson
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 160
    Registrado : 08/05/2015

    Não executar código em campo vazio Empty Re: Não executar código em campo vazio

    Mensagem  vailson 23/5/2017, 15:55

    Ainda não funcionou
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Não executar código em campo vazio Empty Re: Não executar código em campo vazio

    Mensagem  Alexandre Neves 12/6/2017, 19:06

    Boa tarde,
    Código:
        Dim Rst As DAO.Recordset
        Set Rst = CurrentDb.OpenRecordset("SELECT Produtividade WHERE codproduti= " & Me.codProduti)
        With Rst
            !pessoas = Me.pessoas
            !opo = Me.opo
        End With
    Não entendi a pergunta na caixa de mensagem, sem possibilidade de escolha


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    Não executar código em campo vazio Empty Re: Não executar código em campo vazio

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 17/5/2024, 08:23