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


3 participantes

    [Resolvido]Mensagem para campos em branco

    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 680
    Registrado : 14/12/2010

    [Resolvido]Mensagem para campos em branco Empty [Resolvido]Mensagem para campos em branco

    Mensagem  julianovv 29/7/2013, 18:03

    Boa tarde feras! cheers:
    Tenho um formulário popup de cadastro de funcionários com um subformulário. No subformulário tem um botão "Endereço".
    Queria uma mensagem que ao clicar no botão e os campos deste subformulário estiverem vazios (todos devem estar preenchidos), que apareça uma mensagem que não pode deixar os campos em branco e cancela a abertura.

    Os campos do subformulário:

    funcFuncao (Função) - caixa de combinação
    CPF - campo texto
    funcDataNas (Data de nascimento) - campo texto
    funcDtAdmiss (Data de admissão) campo data/hora
    funcEstCiv - (Estado civil) - caixa de combinação
    Sexo - caixa de combinação
    func_empresa - caixa de combinação
    funcDtCadastro (Data do cadastro) - campo data/hora
    funcDtDeslig (Data de desligamento) - campo data/hora
    func_Obs (Observações) - campo texto
    med_prev (Associado Med-Prev) - caixa de opção

    O botão 'Endereço' possui os campos de endereço.

    Isso é possível?

    Rolling Eyes 


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 30/7/2013, 09:46

    Amigão, tente usar mais a Busca do fórum, essa questão já foi debatida aqui milherrimas vezes.

    Entre muitos outros, veja este;

    http://maximoaccess.forumeiros.com/t280-valida-campos-nulos



    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 680
    Registrado : 14/12/2010

    [Resolvido]Mensagem para campos em branco Empty Res: Mensagem para campos em branco

    Mensagem  julianovv 30/7/2013, 14:24

    Sim, eu faço as pesquisas e já me ajudou muito mas quase sempre um caso é diferente do outro e não é possível buscar um padrão.
    Sua dica é boa e será bem utilizada nos projetos futuros.
    Obrigado!

    Wink 


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 30/7/2013, 14:28

    Ok, em vez de utilizar em projetos futuros, aproveite e adapte a este seu, se tiver dificuldades, cole aqui o que fez e dê um grito.

    Códigos já prontos para cada caso, é impossivel.


    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 680
    Registrado : 14/12/2010

    [Resolvido]Mensagem para campos em branco Empty Res: Mensagem para campos em branco

    Mensagem  julianovv 31/7/2013, 17:57

    Ok, vou tentar, se não der, dou um retorno.
    Obrigado!

    Wink 


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 680
    Registrado : 14/12/2010

    [Resolvido]Mensagem para campos em branco Empty Res: Mensagem para campos em branco

    Mensagem  julianovv 5/8/2013, 13:45

    Obrigado Paulo. O código funcionou bem em formulários de campos simples da tabela mas em outros, com subformulário e caixas de combinação não deu certo. Ele salva o registro mesmo com campos em branco.
    Vou manter o código nos formulários mais simples.
    Obrigadão!

    Wink


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 5/8/2013, 14:05

    Nunca diga que não funciona noutros controles, pode é dizer que não consegue fazer funcionar.

    Se o botão está no formulario, o código tem de se referenciar ao subform;

    Private Function ValidaCamposNulos() As Boolean
    'By JPaulo ® Maximo Access
       ValidaCamposNulos = True
       Dim ctl As Control
       Dim strName As String
       For Each ctl In Forms!SeuFormulario!SeuSubFormulario.Controls
           If IsNull(ctl) Then
               strName = ctl.Controls(0).Caption
               ValidaCamposNulos = False
               MsgBox "Preencha o Campo " & Chr(34) & strName, vbCritical
               ctl.SetFocus
           Exit Function
         End If
       Next ctl
    End Function


    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 5/8/2013, 14:23

    E ainda, pode se referenciar pelas proprias propriedades;


    For Each ctl In Forms("SeuFormulario").Controls("SeuSubFormulario").Form.Controls



    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 680
    Registrado : 14/12/2010

    [Resolvido]Mensagem para campos em branco Empty Res: Mensagem para campos em branco

    Mensagem  julianovv 5/8/2013, 14:40

    Obrigado. Vou tentar e mando um retorno.

    Wink 


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile
    carloshmfernandes
    carloshmfernandes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 13/08/2013

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  carloshmfernandes 15/8/2013, 18:28

    Bacana esse código. me ajudou muito.

    Agora estou quebrando a cabeça para fazer o seguinte.
    Existem campos que são opcionais no meu preenchimento e não quero que ele faça essa checagem, também reutilizei o código para fazer o bloqueio da tela e não permitir digitação, mas estou tendo problema de enabled = false no controle de busca do cadastro pois a função me avisa que não pode desabilitar um controle que está com o focu.


    Alguém já tenho usar o código para travamento de dos campos?



    Editando o post para não criar um novo com a solução
    A função no meu caso não ficou legal por conter alguns campos que são opcionais então fiz direto no botão mesmo, ficando assim

    Código:
    Private Sub BtnSalvar_Click()
    Dim Ctl As Control
    For Each Ctl In Controls
    If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox Then 'Verifica se é um textbox ou Combox e no proximo if verifica se é o campo opcional
        If (Ctl.ControlName = "cbobuscar" Or Ctl.ControlName = "TxtRazaoSocial" Or Ctl.ControlName = "TxtComplemento" Or Ctl.ControlName = "TxtTel_Cel") = True Then
            Else
              If IsNull(Ctl.value) Or Ctl.value = "" Then 'sendo obrigatório ele verifica se é nulo ou contem ""
              MsgBox "Existem campos obrigatórios sem preenchimento!", vbCritical
              Ctl.SetFocus
              Exit Sub
            End If
        End If
       
    End If
    Next Ctl
          Call Salvar_Novo(Me)
          Call LimpezaCampos(Me)
          Call DesabilitarControles(Me)
          CboBuscar.Enabled = True
    '      BtnEditarCadastro.Enabled = False
    '      BtnEditarCep.Enabled = False
          CboBuscar.Requery
          CboBuscar.SetFocus

    End Sub
    Acho que é isso, como faz tempo que não mexo com VB estou apanhando em algumas coisas se existir algo mais fácil só postar.
    Valeu ao JPaulo por postar a função


    Última edição por carloshmfernandes em 15/8/2013, 21:01, editado 1 vez(es) (Motivo da edição : Código Solução)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 16/8/2013, 10:13

    Para que o código não fique muito extenso, em vez do Ctl.Name e escrever todos os nomes dos campos, pode ainda utilizar a Tag (marca) de cada campo e colocar lá por exemplo um "X" ou outra letra qualquer,

    Depois já pode checkar pela Tag dos campos que quer ou não quer,

    If Ctl.Tag = "X" Then



    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    carloshmfernandes
    carloshmfernandes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 13/08/2013

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  carloshmfernandes 16/8/2013, 14:44

    Legal sua dica.
    Coloco isso na propriedade dos Txt, dessa forma não preciso fazer a verificação de type, mas sim apenas da tag.


    Valeu.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 16/8/2013, 14:45

    Isso ae, é só testar.

    Veja este a bloquear pela Tag dos campos;


    Public Function  BloqControles ( strFrm As Form) As String
    Dim ctl As Control
               
               For Each ctl In strFrm.Controls
                   If InStr(1, ctl.Tag, "A") Then
                      ctl.Visible = True 'se desejar que fique visivel o campo
                      ctl.Locked = True 'se desejar bloquear o campo
                      ctl.Enabled = True 'se desejar ativar o campo
                   End If
               Next ctl

    End Function


    Para chamar a função,

      Call BloqControles(Me)


    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    carloshmfernandes
    carloshmfernandes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 13/08/2013

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  carloshmfernandes 16/8/2013, 15:04

    Funcionou certinho.
    Ficou assim

    Dim Ctl As Control
    For Each Ctl In Controls
    If Ctl.Tag = "obrigatorio" Then
    If IsNull(Ctl.value) Or Ctl.value = "" Then
    MsgBox "O campo " & Ctl.Caption & " é obrigatório!", vbCritical
    Ctl.SetFocus
    Exit Sub
    End If
    End If
    Next Ctl

    Esse caption é que estou tentando pegar o nome do Label e não do txt. se pegar do Txt ai aparece Txtsobrenome.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 16/8/2013, 15:17

    Então, em vez de "obrigatorio" na Tag, você pode escrever o nome que quer para o campo e faz a validação se a tag é nulo ou não.



    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 16/8/2013, 15:40

    Teste assim e retorne;

    Private Function ValidaCamposNulos() As Boolean
    'By JPaulo ® Maximo Access
       ValidaCamposNulos = True
       Dim ctl As Control
       Dim strName As String
       For Each ctl In Forms("SeuFormulario").Controls
           If InStr(1, ctl.Tag, "") And IsNull(ctl) Then
               strName = ctl.Tag
               ValidaCamposNulos = False
               MsgBox "Preencha o Campo: " & strName, vbCritical
               ctl.SetFocus
           Exit Function
         End If
       Next ctl
    End Function


    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    carloshmfernandes
    carloshmfernandes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 13/08/2013

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  carloshmfernandes 16/8/2013, 15:45

    Valeu.

    Ficou assim

    Dim Ctl As Control
    For Each Ctl In Controls
    If Ctl.Tag <> "" Then

       If IsNull(Ctl.value) Or Ctl.value = "" Then
          MsgBox "O campo " & Ctl.Tag & " é obrigatório!", vbCritical
          Ctl.SetFocus
          Exit Sub
       End If
    End If
    Next Ctl

    Tem como fazer a verificação nos campos mesmo na regra de validação, mas dessa forma só apareceria depois do controle perder o foco e teria que deixar o botão salvar desabilitado. então melhor fazer no botão mesmo.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  JPaulo 16/8/2013, 15:49

    Utilize o que lhe passei, é mais seguro de erros.


    .................................................................................
    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]Mensagem para campos em branco Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Mensagem para campos em branco Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Mensagem para campos em branco Folder_announce_new Instruções SQL como utilizar...
    julianovv
    julianovv
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 680
    Registrado : 14/12/2010

    [Resolvido]Mensagem para campos em branco Empty Res: Mensagem para campos em branco

    Mensagem  julianovv 20/9/2013, 13:16


    Bom dia JPaulo!
    Desculpa pela demora na resposta. Agarrei com outra coisa.
    Este formulário popup possui alguns campos que são padrão. Exemplo: Estado: MG. Como já existe um valor padrão que pode ser alterado gostaria que a mensagem fosse "Manter o Estado como padrão?", se não, seleciona o valor para alterar e prossegue exibindo a mensagem padrão do formulário para campos vazios.
    Obrigado!



    Rolling Eyes


    .................................................................................
    Juliano

    USO O ACCESS 2007 NO XP SP3
    Pentil 4 Duo Core 2 - 3.2 ghz - HD 250 GB ATA II - Placa Asus P5QPL-AM - 2 GB de memória DDR2 667 mhz Kingston - GForce GT220 - Monitor AOC 24 pol G2HE524G2 - Impressora Epson T33 - Scanner Bright.
    Smile

    Conteúdo patrocinado


    [Resolvido]Mensagem para campos em branco Empty Re: [Resolvido]Mensagem para campos em branco

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 6/5/2024, 12:43