MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Campo Data vazio

    Compartilhe

    alantb
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 25/07/2017

    [Resolvido]Campo Data vazio

    Mensagem  alantb em Qua 10 Out 2018, 23:17

    Olá pessoal, tenho um formulário de cadastro no Acccess2016 com nove(9) campos. Especificamente dentre eles, tenho dois campos tipo Data/Hora que recebem datas no formato dd/mm/yyyy e outro tipo Número. Em 99% dos cadastros estes campos recebem valores. Entretanto haverá situações em que não será necessário o preenchimento destes três campos, só o restante. Abrindo diretamente a tabela se vê os dados lá gravados. Porém percebi que se deixo estes campos em branco, não consigo exibir esses registros em controles como Caixa de Listagem carregados por consultas.  Então como resolver essa questão, ou tem como atribuir um valo qualquer para que se faça a manutenção destes registros????
    Tentei assim, mas não deu certo:

    CurrentDb.Execute "Insert into tbContrato(Matricula, codPessoa, codSecretaria, codSetor, codCargo, chefe, dtNomeacao, codClasse, dtClasse, Obs ) values (" & txtMatricula & "," & txtCodPessoa & "," & txtCodSecretaria & "," & txtCodSetor & "," & txtCodCargo & "," & ChkChefe & ",'" & IIf(IsNull(txtDataNomeacao) Or Me.txtDataNomeacao = "", "Null", "#" & Format(Me.txtDataNomeacao, "dd/mm/yyyy") & "#") & "'," & txtCodClasse & ",'" & IIf(IsNull(txtDataClasse) Or Me.txtDataClasse = "", "Null", "#" & Format(Me.txtDataClasse, "dd/mm/yyyy") & "#") & "','" & txtObs & "')"
         


    Ps: os campos em questão são: dtNomeacao(txtDataNomeacao); dtClasse(txtDataClasse) e codClasse(txtCodClasse)

    ALAN
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10272
    Registrado : 04/11/2009

    Re: [Resolvido]Campo Data vazio

    Mensagem  JPaulo em Qui 11 Out 2018, 08:10

    Olá;

    Use a função NZ para tratar nulos.

    Exemplo:
    Código:
    Nz([SeuCampo];0)


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    alantb
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 25/07/2017

    Re: [Resolvido]Campo Data vazio

    Mensagem  alantb em Qui 11 Out 2018, 11:45

    JPaulo, inseri a "NZ" da maneira abaixo, mas não deu certo. Dá erro de sintaxe em isert into....Sigo na busca...

    CurrentDb.Execute "Insert into tbContrato(Matricula, codPessoa, codSecretaria, codSetor, codCargo, chefe, dtNomeacao, codClasse, dtClasse, Obs ) values (" & txtMatricula & "," & txtCodPessoa & "," & txtCodSecretaria & "," & txtCodSetor & "," & txtCodCargo & "," & ChkChefe & ",'" & Nz([txtDataNomeacao], 0) & "'," & Nz([txtCodClasse], 0) & ",'" & Nz([txtDataClasse], 0) & "','" & txtObs & "')"


    ALAN
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10272
    Registrado : 04/11/2009

    Re: [Resolvido]Campo Data vazio

    Mensagem  JPaulo em Qui 11 Out 2018, 13:42

    Teste;

    Código:
    CurrentDb.Execute "INSERT INTO " _
    & " tbContrato(Matricula, codPessoa, codSecretaria, codSetor, codCargo, chefe, dtNomeacao, codClasse, dtClasse, Obs )" _
    & " VALUE (" & txtMatricula & "," & txtCodPessoa & "," & txtCodSecretaria & "," & txtCodSetor & "," & txtCodCargo & "," _
    & "" & ChkChefe & ", #" & IIf(Not IsDate(Me.txtDataNomeacao), Null, Format(Me.txtDataNomeacao, "dd/mm/yyyy")) & "#, " & txtCodClasse & "," _
    & "#" & IIf(Not IsDate(Me.txtDataNomeacao), Null, Format(Me.txtDataClass, "dd/mm/yyyy")) & "#,'" & txtObs & "')"


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    alantb
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 25/07/2017

    Re: [Resolvido]Campo Data vazio

    Mensagem  alantb em Qui 11 Out 2018, 17:19

    Mestre JPaulo, fiz conforme a última mensagem, mas mesmo assim dá erro de erro de sintaxe no insert into. O VBA deixa a query toda em amarelo e não grava. Passando o ponteiro do mouse sobre os txts da query dá para ver os dados que foram digitados para gravar e os campos em questão mostram o valor como "Nulo". Sigo adiante.....

    ALAN
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10272
    Registrado : 04/11/2009

    Re: [Resolvido]Campo Data vazio

    Mensagem  JPaulo em Sex 12 Out 2018, 06:42

    Anexe aqui parte do seu por favor.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    alantb
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 25/07/2017

    Re: [Resolvido]Campo Data vazio

    Mensagem  alantb em Seg 15 Out 2018, 09:58

    Olá mestre JPaulo, não respondi antes pois estive fora da cidade. Então para melhor entendimento segue, cópia do bd. Para teste acessar o frmContrato.

    ALAN
    Anexos
    promo1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.5 Mb) Baixado 4 vez(es)
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10272
    Registrado : 04/11/2009

    Re: [Resolvido]Campo Data vazio

    Mensagem  JPaulo em Seg 15 Out 2018, 10:40

    Código:
    Private Sub cmdGravar_Click()
    Dim temMatricula As Recordset

          If vInclusao = True Then
     
       If Not IsNull(Me.txtMatricula) Then
      
             strSQL = "SELECT Matricula FROM tbContrato WHERE Matricula = " & Me.txtMatricula & ""
             Set temMatricula = CurrentDb.OpenRecordset(strSQL)
            
             If temMatricula.RecordCount <> 0 Then
                 MsgBox "Já existe pessoa registrada com esse número de Matrícula,verifique!!!.", vbInformation, "Aviso"
             Exit Sub
             End If
            
        End If
          
    CurrentDb.Execute "INSERT INTO " _
    & " tbContrato(Matricula, codPessoa, codSecretaria, codSetor, codCargo, chefe, dtNomeacao, codClasse, dtClasse, Obs )" _
    & " VALUE (" & Nz(txtMatricula, 0) & "," & Nz(txtCodPessoa, 0) & "," & Nz(txtCodSecretaria, 0) & "," & Nz(txtCodSetor, 0) & "," & Nz(txtCodCargo, 0) & "," _
    & " " & Nz(ChkChefe, 0) & ", #" & Nz(IIf(Not IsDate(Me.txtDataNomeacao), Null, Format(Me.txtDataNomeacao, "dd/mm/yyyy")), "") & "#, " & Nz(txtCodClasse, 0) & "," _
    & "#" & Nz(IIf(Not IsDate(Me.txtDataNomeacao), Null, Format(Me.txtDataClasse, "dd/mm/yyyy")), "") & "#,'" & Nz(txtObs, "") & "')"
            
            MsgBox ("Registro Salvo com Sucesso!!"), vbInformation, "Inclusão de Registro"
            LimpaCampos
            Forms!frmContrato!ListBox1.Requery
            DesabilitaCampos
            HabilitaCmd
            
        Else
            On Error Resume Next
            CurrentDb.Execute "UPDATE tbContrato SET codSecretaria=" & Me.txtCodSecretaria & ", codSetor=" & Me.txtCodSetor & ", codCargo=" & Me.txtCodCargo & ", chefe=" & Me.ChkChefe & ",dtNomeacao='" & Me.txtDataNomeacao & "' ,codClasse=" & Me.txtCodClasse & " ,dtClasse='" & Me.txtDataClasse & "', Obs='" & Me.txtObs & "' where Matricula=" & Me.txtMatricula

       MsgBox ("Registro Atualizado com Sucesso!!"), vbInformation, "Atualização de Registro"
      
       LimpaCampos
       Forms!frmContrato!ListBox1.Requery
       DesabilitaCampos
       DesabilitaSeleciona
       HabilitaCmd

    End If
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    alantb
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 25/07/2017

    Re: [Resolvido]Campo Data vazio

    Mensagem  alantb em Seg 15 Out 2018, 11:19

    JPaulo, usei o código conforme indicou anteriormente, mas continua dando erro na instrução Insert Into. No grifado em amarelo na janela do VBA, passando o mouse em cima dos txts exibe os valores preenchidos para os primeiros campos normalmente, e, os campos data e classe com valores NULO, entretanto não grava na tbContrato. Fora a modificação no código há alguma alteração na tabela ou no form a ser feita???

    ALAN
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10272
    Registrado : 04/11/2009

    Re: [Resolvido]Campo Data vazio

    Mensagem  JPaulo em Seg 15 Out 2018, 13:08

    Amigão, testei e funciona;

    Download

    Se o problema continuar, diga-me como está a testar, para eu reproduzir o erro.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    alantb
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 25/07/2017

    Re: [Resolvido]Campo Data vazio

    Mensagem  alantb em Seg 15 Out 2018, 13:37

    JPaulo, para testar primeiro adiciona-se uma pessoa (Cadastro de Pessoas), depois no Cadastro de Contrato(frmContrato) atribui-se uma matricula a pessoa cadastrada; e seleciona os outros dados: secretaria, setor, cargo. No caso testei deixando os campos data e classe em branco ou digitando zero, e também não gravou.Como fizeste o teste ai????

    ALAN
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10272
    Registrado : 04/11/2009

    Re: [Resolvido]Campo Data vazio

    Mensagem  JPaulo em Qui 18 Out 2018, 06:59

    Ola bom dia!

    Ok, testei e refiz algumas coisas que estavam mal.

    Alterei a consulta "ConsultaContrato" que alimenta a lista do form Contrato.
    Alterei o código de insert, com Recordset.
    Alterei a chamada do "CarregaLista" e inseri logo após o Recordset adicionar o registro.

    Valide por favor, apenas inseri uma pesso nova "JPaulo".

    Download






    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    alantb
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 25/07/2017

    Re: [Resolvido]Campo Data vazio

    Mensagem  alantb em Qui 18 Out 2018, 08:28

    Mestre JPaulo, com as últimas alterações, finalmente deu certo por aqui. Mais uma vez agradeço a atenção e o empenho em ajudar. Sendo assim encerramos por aqui e RESOLVIDO!!

    ALAN
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10272
    Registrado : 04/11/2009

    Re: [Resolvido]Campo Data vazio

    Mensagem  JPaulo em Qui 18 Out 2018, 09:30

    Fico feliz pelo tempo investido e pelo seu retorno.

    Aproveite e veja este tópico
    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Ter 11 Dez 2018, 08:48