MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Conbox e VBA

    Compartilhe

    infosoft
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 250
    Registrado : 09/07/2012

    [Resolvido]Conbox e VBA

    Mensagem  infosoft em Ter 10 Jun 2014, 16:08

    Olá pessoal, tudo bem?
    Não estou conseguindo gerar um código VBA que funcione tanto na digitação dentro de um combox, quanto num clique de botão.

    Num conbox, o usuário escolhe/digita um relatório e tecla enter, se ele digitou um nome inexistente, o VBA avisa o erro e retorna o foco ao conbox:
    -------
    Private Sub cboRelatorios_NotInList(NewData As String, Response As Integer)
    On Error Resume Next
    DoCmd.SetWarnings False
    Response = acDataErrContinue
    MsgBox "Nome de relatório inválido, escolha outro.", vbInformation, "Aviso"
    Me.Undo
    End Sub
    -------

    Só que o valor padrão é "Escolha um relatório" e se o usuário não usar este conbox e prosseguir na janela e somente clicar no botão OK, o VBA avisa:
    ------
    Private Sub OK_Click()
    On Error Resume Next
    DoCmd.SetWarnings False

    If Me.cboRel <> 0 Then
    If Me.cboRel <> "Escolha um relatório" Then
    Call DialogoImprime
    DoCmd.Close acForm, Me.Name
    Else
    If Me.cboRel = "Escolha um relatório" Then
    MsgBox "Você deve escolher um relatório!", vbInformation, "Aviso"
    Me.Undo

    End If
    End If
    End If
    End Sub
    ------
    Referente ao clicar em OK, até que dá certo, mas se o usuario deletar o que estava na conbox e clicar OK, não acontece NADA, a janela somente dá uma "piscada". E mesmo se o usuário digitar algo errado na conbox e clicar OK, a janela só dá uma "piscada" e somente prossegue, se o usuário escolher um relatório certo.

    Preciso de ajudar para consertar este código do botão OK para:
    1- Não escolheu/digitou nada e ficou o valor padrão "Escolha um relatório";
    2- Digitou nome inválido;
    3- Deixou o campo vazio (apagou o valor padrão e não escolheu/digitou nada)

    Desde já agradeço, Luz e Paz!

    Silvanio123
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 91
    Registrado : 24/08/2011

    Re: [Resolvido]Conbox e VBA

    Mensagem  Silvanio123 em Ter 10 Jun 2014, 19:08

    Boa tarde infosoft,

    tente assim:

    Código:
    On Error Resume Next

        If IsNull(Me.cboRel) Then
            '3- Deixou o campo vazio (apagou o valor padrão e não escolheu/digitou nada)
            MsgBox "Você deve escolher um relatório!", vbInformation, "Deixou o campo vazio"
        End If
        
        If Me.cboRel <> "Escolha um relatório" Then
            Call DialogoImprime
            DoCmd.Close acForm, Me.Name
        End If
            
        If Me.cboRel = "Escolha um relatório" Then
            MsgBox "Você deve escolher um relatório!", vbInformation, "Aviso"
        End If

    Vlw.

    infosoft
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 250
    Registrado : 09/07/2012

    Re: [Resolvido]Conbox e VBA

    Mensagem  infosoft em Ter 10 Jun 2014, 19:45

    Muito obrigado Silvanio123!

    Luz e Paz!

    Silvanio123
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 91
    Registrado : 24/08/2011

    Re: [Resolvido]Conbox e VBA

    Mensagem  Silvanio123 em Ter 10 Jun 2014, 20:43

    Vlw.

      Data/hora atual: Sex 09 Dez 2016, 13:27