MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Campos de preenchimento obrigatório

    avatar
    jachornung
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 17/08/2020

    [Resolvido]Campos de preenchimento obrigatório Empty [Resolvido]Campos de preenchimento obrigatório

    Mensagem  jachornung em 7/10/2020, 21:00

    Olá pessoal, td bem?

    Estou tendo dificuldades na construção de uma macro. Fiz várias pesquisas aqui no fórum mas não consegui adequar nenhuma resposta encontrada ao que eu preciso.


    • Eu tenho dois campos de preenchimento obrigatório: txt_NúmeroRelatório e txt_ObjetivoRelatórioPT.



    • O campo txt_NúmeroRelatório não pode aceitar um valor já armazenado na tabela tblListaRelatóriosMontagem.



    • Após incluir os dados, os mesmos devem ser armazenados na tabela tblListaRelatóriosMontagem.


    Em várias tentativas, eu consegui fazer o código funcionar apenas se todos os campos estiverem preenchidos, porém se deixo um deles sem preencher, dá erro.

    Desde já agradeço toda ajuda.

    Código:
    Private Sub btn_ProximaPaginaInterfaces_Click()

        Dim rs As DAO.Recordset
        Set rs = CurrentDb.OpenRecordset("tblListaRelatóriosMontagem")

        If (Not IsNull(DLookup("[NúmeroRelatório]", "tblListaRelatóriosMontagem", "[NúmeroRelatório] ='" & Me!txt_NúmeroRelatório & "'"))) Then
          
            MsgBox "O relatório já existe.", _
            vbInformation, "Atenção!"
            Cancel = True
            Me!txt_NúmeroRelatório.Undo
            
        End If
            
          
            If IsNull(Me.txt_NúmeroRelatório) Or Me.txt_NúmeroRelatório.Value = "" Then
                MsgBox "Por favor, preecha o Número do Relatório", vbOKOnly + vbCritical, "Atenção!"
                Me.txt_NúmeroRelatório.SetFocus

            ElseIf IsNull(Me.txt_ObjetivoRelatórioPT) Or Me.txt_ObjetivoRelatórioPT.Value = "" Then
            MsgBox "Por favor, preecha o Objetivo do Relatório", vbOKOnly + vbCritical, "Atenção!"
            Me.txt_ObjetivoRelatórioPT.SetFocus
                                                      
            If Not IsNull(Me.txt_NúmeroRelatório) Then
            ElseIf Not IsNull(Me.txt_ObjetivoRelatórioPT) Then

     If Not rs.BOF Then
                          
                rs.AddNew
                rs![NúmeroRelatório] = Me.txt_NúmeroRelatório
                rs![VersãoRelatório] = "01"
                rs![ObjetivoRelatório] = Me.txt_ObjetivoRelatórioPT
                rs.Update
                                  
        Me.GuiaCadastroNovoRelatorio.Pages("Cadastro de Interfaces").SetFocus
        
        End If
        
        rs.Close
        
        Set rs = Nothing
        
        End If
        
        End If
        
            
    End Sub
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1467
    Registrado : 23/01/2018

    [Resolvido]Campos de preenchimento obrigatório Empty Re: [Resolvido]Campos de preenchimento obrigatório

    Mensagem  crysostomo em 8/10/2020, 03:52

    If (Not IsNull(DLookup("[NúmeroRelatório]", "tblListaRelatóriosMontagem", "[NúmeroRelatório] ='" & Me!txt_NúmeroRelatório & "'"))) Then escreveu:
    Not Issnul ja está mostrando que não pode ser nulo, para que colocar o  "'" no final?
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Campos de preenchimento obrigatório Empty Re: [Resolvido]Campos de preenchimento obrigatório

    Mensagem  JPaulo em 8/10/2020, 14:10

    crysostomo, NULL é diferente de VAZIO, cuidado com a interpretação;

    Teste assim;

    Código:
    Private Sub btn_ProximaPaginaInterfaces_Click()
    Dim RS As DAO.Recordset

    'valida campos nulos ou vazios, antes de abrir o recordset
            If IsNull(Me.txt_NúmeroRelatório.Value) Or Me.txt_NúmeroRelatório.Value = "" Then
                MsgBox "Por favor, preecha o Número do Relatório", vbOKOnly + vbCritical, "Atenção!"
                Me.txt_NúmeroRelatório.SetFocus
                'se vazio pára aqui
                Exit Sub
            End If

            If IsNull(Me.txt_ObjetivoRelatórioPT.Value) Or Me.txt_ObjetivoRelatórioPT.Value = "" Then
                MsgBox "Por favor, preecha o Objetivo do Relatório", vbOKOnly + vbCritical, "Atenção!"
                Me.txt_ObjetivoRelatórioPT.SetFocus
                'se vazio pára aqui
                Exit Sub
            End If
           
    'se campos preenchidos, abre o recordset
        Set RS = CurrentDb.OpenRecordset("select * from tblListaRelatóriosMontagem")
       
        'se não encontrar registos, morre aqui
        If RS.RecordCount = 0 Then Exit Sub
        'coloca-se no 1º registro
        RS.MoveFirst
        'percorre todos os registros da tabela SuaTabela
        Do While Not RS.EOF
        'se encontrar o registro que já existe, dá mensagem e morre aqui
            If RS.Fields("NúmeroRelatório") = Me!txt_NúmeroRelatório.Value Then
                Resp = MsgBox("O relatório já existe.", vbCritical, "Cancelado")
            Exit Sub
                Else
        ' não faz nada
            End If
        'avança para o seguinte registro
            RS.MoveNext
        Loop
       
    'depois de percorrer todos os registros e se tudo OK, adiciona
                RS.AddNew
                RS![NúmeroRelatório] = Me.txt_NúmeroRelatório.Value
                RS![VersãoRelatório] = "01"
                RS![ObjetivoRelatório] = Me.txt_ObjetivoRelatórioPT.Value
                RS.Update
                                 
        Me.GuiaCadastroNovoRelatorio.Pages("Cadastro de Interfaces").SetFocus
    'fecha o recordset e limpa a memoria
     RS.Close: Set RS = Nothing
    End Sub


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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Campos de preenchimento obrigatório Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Campos de preenchimento obrigatório Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Campos de preenchimento obrigatório Folder_announce_new Instruções SQL como utilizar...

    crysostomo e jachornung gostam desta mensagem

    avatar
    jachornung
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 17/08/2020

    [Resolvido]Campos de preenchimento obrigatório Empty Re: [Resolvido]Campos de preenchimento obrigatório

    Mensagem  jachornung em 8/10/2020, 15:52

    Obrigada JPaulo!!

    Funcionou perfeitamente!!
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    [Resolvido]Campos de preenchimento obrigatório Empty Re: [Resolvido]Campos de preenchimento obrigatório

    Mensagem  JPaulo em 8/10/2020, 17:27

    Fico feliz, obrigado pelo retorno.


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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Campos de preenchimento obrigatório Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Campos de preenchimento obrigatório Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Campos de preenchimento obrigatório Folder_announce_new Instruções SQL como utilizar...

      Data/hora atual: 4/12/2020, 13:58