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

    Botão relatório com filtro em caixa de combinação

    jeanrocha
    jeanrocha
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    Botão relatório com filtro em caixa de combinação Empty Botão relatório com filtro em caixa de combinação

    Mensagem  jeanrocha 8/3/2017, 13:23

    Prezados colega do fórum,

    Estou com um problema em um formulário de clientes onde eu gostaria de implementar a seguinte instrução no botão imprimir (que leva ao relatório)

    A caixa de combinação está como cboimprimir e contem os registros em uma lista pré definida que será selecionada pelo usuário.

    No botão tenho a seguinte instrução:
    nome : btnimprimir

    Código:
    Private Sub btnimprimir_Click()
        If Me.cboimprimir.Value = "" Then
            Dim resultado As VbMsgBoxResult
            resultado = MsgBox("Gostaria de imprimir apenas o registro atual?", vbYesNo, "Impressão")
                 If resultado = vbYes Then
                     'imprimir apenas o egistro atual
                     DoCmd.OpenReport "RelBensConsumiveisLocal", acViewPreview, "", "[CodBenCon]=[forms]![FrmCadBensConsumiveis]![CodBenCon]", acNormal
                 Else
                    MsgBox "Escolha uma opção para imprimir"
            End If
        ElseIf Me.cboimprimir.Value = "Por Local" Then
            'mostra relatório por local
            DoCmd.OpenReport "RelBensConsumiveisLocal", acViewPreview, "", "", acNormal
        ElseIf Me.cboimprimir.Value = "Por Categoria" Then
            'mostra relatório por categoria
            DoCmd.OpenReport "RelBensConsumiveisCategoria", acViewPreview, "", "", acNormal
        ElseIf Me.cboimprimir.Value = "Registro" Then
            'imprimir apenas o registro atual
            DoCmd.OpenReport "RelBensConsumiveisLocal", acViewPreview, "", "[CodBenCon]=[forms]![FrmCadBensConsumiveis]![CodBenCon]", acNormal
        End If
    fim:
    End Sub

    Só que este código não está identificando o valor quando a caixa de combinação está vazia, ou seja, quando o usuário não escolheu nenhuma opção.
    Acredito que o ero esteja nesta parte

    Código:
       Dim resultado As VbMsgBoxResult
            resultado = MsgBox("Gostaria de imprimir apenas o registro atual?", vbYesNo, "Impressão")
                 If resultado = vbYes Then
                     'imprimir apenas o egistro atual
                     DoCmd.OpenReport "RelBensConsumiveisLocal", acViewPreview, "", "[CodBenCon]=[forms]![FrmCadBensConsumiveis]![CodBenCon]", acNormal
                 Else
                    MsgBox "Escolha uma opção para imprimir"
            End If

    A solução que consegui aqui foi colocar um comando ao abrir o formulário que seta o valor da caixa de combinação direto para "Registro",
    outra solução que testei foi selecionar o valor padrão da caixa de combinação para "Registro", mas eu gostaria mesmo é saber onde eu estava errando.

    Desde já agradeço.


    Última edição por jeanrocha em 29/4/2017, 02:21, editado 3 vez(es)
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Botão relatório com filtro em caixa de combinação Empty Re: Botão relatório com filtro em caixa de combinação

    Mensagem  Dilson 9/3/2017, 04:26

    Use a função Len para saber a quantidade de caracteres no controle, se estiver igual a zero é porque não tem nada escrito, assim:

           If Nz(Len(Me!NomeDaSuaComboBox)) = 0  Then
                   MsgBox "Escolha uma opção para imprimir"
           Else
                   ' Executa código ...
           End If

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