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] Problemas com formulário de preenchimento

    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Problemas com formulário de preenchimento

    Mensagem  marsolim 11/2/2010, 14:11

    Amigos forunienses (não sei se isso existe, rsrsrs)
    olha só tenho m form com vários campos e uso o codigo abaixo para inserir os dados em campos não acoplados

    Private Sub Adicionar_Click()

    Dim db As Database
    Dim rs As Recordset

    If MsgBox("Gravar registro?", vbYesNoCancel, "Opções") = vbYes Then
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tblClientes", dbOpenTable)
    rs.AddNew

    rs("Nome") = Me!tNome
    rs("Sobrenome") = Me!tSobrenome
    rs("Nascimento") = Me!tNascimento
    rs("CPF") = Me!tCPF
    rs("RG") = Me!tRG
    rs("Telefone") = Me!tTelefone
    rs("Celular") = Me!tCelular
    rs("Email") = Me!tEmail
    rs("Endereço") = Me!tEndereço
    rs("Número") = Me!tNúmero
    rs("Bairro") = Me!tBairro
    rs("Cidade") = Me!tCidade
    rs("Estado") = Me!tEstado
    rs("CEP") = Me!tCEP
    rs("País") = Me!tPaís
    rs("Observações") = Me!tObservações

    rs.Update
    rs.Close
    Set rs = Nothing
    Set db = Nothing

    Me.tNome = Null
    Me.tSobrenome = Null
    Me.tNascimento = Null
    Me.tCPF = Null
    Me.tRG = Null
    Me.tTelefone = Null
    Me.tCelular = Null
    Me.tEmail = Null
    Me.tEndereço = Null
    Me.tNúmero = Null
    Me.tBairro = Null
    Me.tCidade = Null
    Me.tEstado = Null
    Me.tCEP = Null
    Me.tPaís = Null
    Me.tObservações = Null

    MsgBox "Registo gravado com sucesso", vbInformation, "Concluído"
    Me.tNome.SetFocus

    Else: Exit Sub
    End If
    End Sub


    pois bem se eu clicar no botão de adicionar com o form sem dados ele vai para o depurador pois bem eu estou tentando botar uma condição para ele verificar se tem dados obrigatórios vazios e atirar a mensagem mandando o cabra da peste preencher o tal campo pois bem não estou a conseguir tal feito.
    Tentei incluir o comando

    If Me.tNome.Value = "" Then MsgBox ("Preencha o campo Nome seu estúpido") Else
    If Me.tSobrenome.Value = "" Then MsgBox ("Já viu alguma pessoa sem sobrenome seu energúmeno?") Else
    ...


    Tentei isso para todos os campos obrigatórios com Me.campo.Value e tentei sem o .Value tambem, mas não deu certo será que estou errando aonde? seria no local de inserção do código?
    grato fico se alguem puder ajudar a eu nesse momento.
    abraços considerados para todos.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  JPaulo 11/2/2010, 14:27

    Ola;

    Se você quer obrigar o preenchimento de todos os campos, faça assim no evento ao saír de cada um;

    Private Sub SeuCampo_Exit(Cancel As Integer)
    If IsNull(Me.ActiveControl) Then
    DoCmd.CancelEvent
    End If
    End Sub


    Os seus problemas terminam de uma só vez.


    .................................................................................
    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] Problemas com formulário de preenchimento Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new Instruções SQL como utilizar...
    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  marsolim 11/2/2010, 14:46

    Grande JPaulo obrigado pelo retorno mas na verdade só alguns campos que devem ser obrigatórios e para esses é que eu queria que ele enviasse a mensagem informando o ususário para preencher. E o principal mesmo seria se alguem clicar no botão para gravar sem inserir nenhum dado o sistema informar que não tem dados preenchidos e anular o evendo para não mostrar a depuração do vba como está acontecendo porque algum engraçadinho pode inventar de clicar no botão de gravar só por brincadeira entendeu? rsrsrs
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  JPaulo 11/2/2010, 14:51

    Laughing

    Se preferir uma coisa mais elaborada, faça o seguinte.

    1º entre nas propriedades de cada campo e na linha Marca (Tag), coloque o nome desse campo.

    2º Cole este código dentro do VBA do seu formulario.

    Public Function ValidaPreenchimento() As Boolean
    Dim ctl As Control
    For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
    If IsNull(ctl.Value) Then
    MsgBox "O Campo '" & ctl.Tag & "' não pode ficar em branco seu estupido..."
    ctl.SetFocus
    Exit Function
    End If
    End If
    Next
    End Function


    3º Chame a função neste lugar.

    Private Sub Adicionar_Click()

    Dim db As Database
    Dim rs As Recordset

    If MsgBox("Gravar registro?", vbYesNoCancel, "Opções") = vbYes Then

    If ValidaPreenchimento = False Then
    Exit Sub
    End If

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tblClientes", dbOpenTable)
    rs.AddNew


    .................................................................................
    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] Problemas com formulário de preenchimento Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new Instruções SQL como utilizar...
    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  marsolim 11/2/2010, 14:55

    Valeu grande jpaulo acho que isso encerra a questão.
    ser noob é difícil né? rsrssrs
    obrigado e abraços.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  JPaulo 11/2/2010, 15:00

    Para terminar, pode tambem usar este, que só valida os campos que você quiser, os que não forem obrigatórios basta retirar o nome da Marca (Tag).

    Public Function valNullControl(frm As Form)
    Dim ctl As Control
    Dim minhaArray As String
    Dim validacaoOk As Byte

    validacaoOk = 0

    For Each ctl In frm.Controls
    If ctl.Tag <> Null Or ctl.Tag <> "" Then
    ctl.BackColor = 16777215
    End If
    Next ctl

    For Each ctl In frm.Controls
    If ctl.Visible = True Then
    If ctl.Tag <> Null Or ctl.Tag <> "" Then
    If IsNull(ctl) = True Or ctl = "" Then
    ctl.BackColor = 161616
    validacaoOk = 1
    minhaArray = minhaArray & ctl.Tag & ", "
    End If
    End If
    End If
    Next ctl
    If validacaoOk = 1 Then MsgBox "Campo Obrigatório: " & minhaArray

    End Function


    No seu código ficará assim:

    Private Sub Adicionar_Click()

    Dim db As Database
    Dim rs As Recordset

    If MsgBox("Gravar registro?", vbYesNoCancel, "Opções") = vbYes Then

    If valNullControl(Me) = False Then
    Exit Sub
    End If

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tblClientes", dbOpenTable)
    rs.AddNew


    .................................................................................
    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] Problemas com formulário de preenchimento Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new Instruções SQL como utilizar...
    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  marsolim 11/2/2010, 15:22

    obrigado amigo jpaulo se o mundo tivesse mais pessoas igual a você e os amigos aqui do forum a vida seria bem mais fácil para todos.
    abração
    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  marsolim 11/2/2010, 15:29

    Amigo, estava usando aquele primeiro código só que acontece um porem quando tento fechar o formulário não dá por causa do campo Nome em branco e aí todos os campos que coloquei que não pode ficar em branco impedem de fechar o formulário.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  JPaulo 11/2/2010, 15:50

    Mas então não colocou a instrução no evento ao pressionar de um botã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] Problemas com formulário de preenchimento Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new Instruções SQL como utilizar...
    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  marsolim 11/2/2010, 16:07

    Me refiro a esse esquema:

    Ola;

    Se você quer obrigar o preenchimento de todos os campos, faça assim no evento ao saír de cada um;

    Private Sub SeuCampo_Exit(Cancel As Integer)
    If IsNull(Me.ActiveControl) Then
    DoCmd.CancelEvent
    End If
    End Sub

    Os seus problemas terminam de uma só vez.
    .................................................................................
    Sucesso e abraço
    Success and hug

    A imaginação é inútil sem a aplicação de conhecimentos.
    Imagination is fruitless without applying knowledge.


    Bem legal ele só que se o foco estiver em campo vazio não se pode fazer mais nada nem com o mouse. Eu tenho um botão para fechar o form e por causa disso tive que reabilitar o botão fechar do próprio access só que tem outros elementos no form que eu precisaria usar. Vou partir para os outros exemplos que fazem a checagem ao clicar no botão de gravar.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  JPaulo 11/2/2010, 16:33

    Ao utilizar esse, é costume fazer algo assim;

    Adicionar uma caixa de texto vazia, e dar o nome de txtSai

    Agarrar nessa cx e redimencioná-la ao minimo, e colocá-la num campo do seu form.

    Ao abrir o form, dar-lhe com o Me.txtSai.SetFocus, assim saí sempre.

    Mas se você caír dentro de uma com o If IsNull(Me.ActiveControl), aí só saí se você a preencher.


    .................................................................................
    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] Problemas com formulário de preenchimento Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido] Problemas com formulário de preenchimento Folder_announce_new Instruções SQL como utilizar...
    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  marsolim 11/2/2010, 19:42

    Amigo sem querer abusar da sua boa vontade, aonde eu coloco esse código?

    Para terminar, pode tambem usar este, que só valida os campos que você quiser, os que não forem obrigatórios basta retirar o nome da Marca (Tag).

    Public Function valNullControl(frm As Form)
    Dim ctl As Control
    Dim minhaArray As String
    Dim validacaoOk As Byte
    ...


    no qual evento devo inseri-lo? Ao abrir ou Ao carregar?

    Grato.
    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  marsolim 11/2/2010, 22:59

    Amigo, esses códigos de Public Function não estão deixando gravar os registros na tabela parece que eles anulam a mensagem de registros gravados com sucesso e não grava nada na tabela. o que será que tá errado?
    avatar
    marsolim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 44
    Registrado : 05/02/2010

    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  marsolim 12/2/2010, 01:20

    Consegui resolver aqui do jeito que eu queria, depois de muitos testes, hehehe Ficou assim o código agora:

    Private Sub Adicionar_Click()

    If IsNull(Me.tNome) Or Me.tNome.Value = "" Then
    MsgBox ("Campo Nome precisa ser preenchido")
    Me.tNome.SetFocus
    Exit Sub
    End If
    If IsNull(Me.tSobrenome) Or Me.tSobrenome.Value = "" Then
    MsgBox ("Campo Sobrenome precisa ser preenchido")
    Me.tSobrenome.SetFocus
    Exit Sub
    End If
    If IsNull(Me.tNascimento) Or Me.tNascimento.Value = "" Then
    MsgBox ("Campo Dt de nascimento precisa ser preenchido")
    Me.tNascimento.SetFocus
    Exit Sub
    End If
    If IsNull(Me.cboCEP) Or Me.cboCEP.Value = "" Then
    MsgBox ("Campo CEP precisa ser preenchido")
    Me.cboCEP.SetFocus
    Exit Sub
    End If
    If IsNull(Me.tNúmero) Or Me.tNúmero.Value = "" Then
    MsgBox ("Campo Número precisa ser preenchido")
    Me.tNúmero.SetFocus
    Exit Sub
    End If


    Dim db As Database
    Dim rs As Recordset

    If MsgBox("Gravar registro?", vbYesNoCancel, "Opções") = vbYes Then
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tblClientes", dbOpenTable)
    rs.AddNew

    rs("Nome") = Me!tNome
    rs("Sobrenome") = Me!tSobrenome
    rs("Nascimento") = Me!tNascimento
    rs("CPF") = Me!tCPF
    rs("RG") = Me!tRG
    rs("Telefone") = Me!tTelefone
    rs("Celular") = Me!tCelular
    rs("Email") = Me!tEmail
    rs("Endereço") = Me!tEndereço
    rs("Número") = Me!tNúmero
    rs("Bairro") = Me!tBairro
    rs("Cidade") = Me!tCidade
    rs("Estado") = Me!tEstado
    rs("CEP") = Me!tCEP
    rs("País") = Me!tPaís
    rs("Observações") = Me!tObservações

    rs.Update
    rs.Close
    Set rs = Nothing
    Set db = Nothing

    Me.tNome = Null
    Me.tSobrenome = Null
    Me.tNascimento = Null
    Me.tCPF = Null
    Me.tRG = Null
    Me.tTelefone = Null
    Me.tCelular = Null
    Me.tEmail = Null
    Me.tEndereço = Null
    Me.tNúmero = Null
    Me.tBairro = Null
    Me.tCidade = Null
    Me.tEstado = Null
    Me.tCEP = Null
    Me.tPaís = Null
    Me.tObservações = Null

    MsgBox "Registo gravado com sucesso", vbInformation, "Concluído"
    Me.tNome.SetFocus
    Else: Exit Sub
    End If

    End Sub

    A parte do código em vermelho é o que eu consegui fazer com que me retornasse o resultado esperado hehehe
    eu sabia que dava para fazer isso no onClick do próprio botão.
    como diz JPaulo existe varias maneiras de se fazer naston né? hehehehe

    Conteúdo patrocinado


    [Resolvido] Problemas com formulário de preenchimento Empty Re: [Resolvido] Problemas com formulário de preenchimento

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 9/5/2024, 17:57