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]Onde está o erro?

    Compartilhe

    vailson
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 08/05/2015

    [Resolvido]Onde está o erro?

    Mensagem  vailson em Sab 07 Maio 2016, 00:07

    Private Sub comb_gerador_Click()
    Forms![frm_acoes_processo].Visible = False
    If comb_gerador.Text = "autuação" Then
    DoCmd.OpenReport "rpt_autuação", acViewPreview
    Else
    If comb_gerador.Text = "início dos trabalhos" Then
    DoCmd.OpenReport "rpt_oficio_inicio_trabalho", acViewPreview
    Else
    If comb_gerador.Text = "citação de policial militar" Then
    DoCmd.OpenReport "rpt_oficio_citação_acusado", acViewPreview
    Else




    If comb_gerador.Text = "termo de acusação" And DCount("portaria", "tbl_fatos_imputados_acusação", "portaria= '" & Me.txt_portaria & "'") = 0 Then
    MsgBox "Ainda não existe dados preenchidos referentes ao processo. Favor inserir."
    DoCmd.OpenForm "frm_fatos_imputados_acusação", acNormal, , , acFormAdd
       Else
    DoCmd.OpenForm "frm_fatos_imputados_acusação", acNormal, , "[portaria] = '" & Me.txt_portaria & "'"
       End If



    If comb_gerador.Text = "solicitação de policial ao comandante" Then
    DoCmd.OpenReport "rpt_oficio_solicita_policial", acViewPreview
    Else
    If comb_gerador.Text = "apresentação de retorno" Then
    DoCmd.OpenReport "rpt_oficio_apresenta_retorno", acViewPreview
    Else
    If comb_gerador.Text = "solicitação de ficha do policial" Then
    DoCmd.OpenReport "rpt_oficio_solicita_ficha", acViewPreview
    Else
    If comb_gerador.Text = "notificação do policial - oitiva de testemunha" Then
    DoCmd.OpenReport "rpt_oficio_not_oit_testemunha", acViewPreview
    Else
    If comb_gerador.Text = "notificação do policial - oitiva de vítima" Then
    DoCmd.OpenReport "rpt_oficio_not_oit_vitima", acViewPreview
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If


    End Sub


    Qualquer escolha após o código em vermelho o abre junto (abre ambos - a escolha e o form do código em vermelho)

    xoxe
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 230
    Registrado : 27/03/2016

    Re: [Resolvido]Onde está o erro?

    Mensagem  xoxe em Sab 07 Maio 2016, 12:27

    poste seu banco de dados


    .................................................................................

    "Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos." - Albert Einstein



    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    vailson
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 08/05/2015

    Re: [Resolvido]Onde está o erro?

    Mensagem  vailson em Sab 07 Maio 2016, 13:31

    Bom dia. Não tenho como mandar agora. Mas o código está em um combobox, cada if desse aí serve para abrir um relatório determinado. Ocorre que um dos if abre um formulário em um registro específico através de filtro (o que está destacado em vermelho) e todos os if que estão após esse em vermelho abrem, além do relatório correspondente, o formulário do comando vermelho. É como se eu não tivesse encerrado a ação.

    xoxe
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 230
    Registrado : 27/03/2016

    Re: [Resolvido]Onde está o erro?

    Mensagem  xoxe em Sab 07 Maio 2016, 13:43

    Tente colocar esse código em vermelho no final dos End If


    .................................................................................

    "Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos." - Albert Einstein



    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    vailson
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 08/05/2015

    Re: [Resolvido]Onde está o erro?

    Mensagem  vailson em Sab 07 Maio 2016, 13:55

    Sim, isso é o lógico... Ocorre que preciso acrescentar outros semelhantes, aí buga.
    Preciso encerrar esse if especificamente. Essa combobox abre relatórios e formulários. São dezenas de possibilidades, portanto não posso criar dezenas de botões na tela, preciso da combobox.

    Pablo Neruda
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 299
    Registrado : 17/09/2010

    Re: [Resolvido]Onde está o erro?

    Mensagem  Pablo Neruda em Sab 07 Maio 2016, 14:48

    Não seria só colocar um exit sub caso a opção seja atendida?


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.] Elohim Manutenção & Sistemas
    ..............Powered by MS Access with VBA code..............
    ............http://www.elohimsistemas.com.br/...........

    vailson
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 08/05/2015

    Re: [Resolvido]Onde está o erro?

    Mensagem  vailson em Sab 07 Maio 2016, 15:53

    Os if abaixo do exit sub não rodam.

    xoxe
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 230
    Registrado : 27/03/2016

    Re: [Resolvido]Onde está o erro?

    Mensagem  xoxe em Sab 07 Maio 2016, 16:21

    Não estou conseguindo compreender bem.
    A condição if irá verificar todas as possibilidades, porém se cair na condição q está em vermelho (sendo ela verdade) o código deverá parar ou não?


    .................................................................................

    "Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos." - Albert Einstein



    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    vailson
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 08/05/2015

    Re: [Resolvido]Onde está o erro?

    Mensagem  vailson em Sab 07 Maio 2016, 16:50

    Sim, mas se ele parar não vai verificar as condições posteriores ao exit sub.

    Pablo Neruda
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 299
    Registrado : 17/09/2010

    Re: [Resolvido]Onde está o erro?

    Mensagem  Pablo Neruda em Sab 07 Maio 2016, 17:07

    Como você colocou o EXIT SUB?

    Para que o código possa ter uma possibilidade de outra condição o campo comb_gerador.Text tem que ter mais de um valor... Estou confuso nessa lógica!


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.] Elohim Manutenção & Sistemas
    ..............Powered by MS Access with VBA code..............
    ............http://www.elohimsistemas.com.br/...........

    xoxe
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 230
    Registrado : 27/03/2016

    Re: [Resolvido]Onde está o erro?

    Mensagem  xoxe em Sab 07 Maio 2016, 17:12

    Pode ocorrer de ter mais de um valor na combobox?
    Por ex: "termo de acusação" (do código em vermelho) e qualquer um outro citado no código?

    Pq se os valores forem 1 a cada alteração não era p dar problema.


    .................................................................................

    "Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos." - Albert Einstein



    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    Pablo Neruda
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 299
    Registrado : 17/09/2010

    Re: [Resolvido]Onde está o erro?

    Mensagem  Pablo Neruda em Sab 07 Maio 2016, 17:16

    Seria mais ou menos isso. Modifiquei o código para como acho que funcionária...

    Forms![frm_acoes_processo].Visible = False

    If comb_gerador.Text = "autuação" Then

    DoCmd.OpenReport "rpt_autuação", acViewPreview
    EXIT SUB

    ElseIf comb_gerador.Text = "início dos trabalhos" Then

    DoCmd.OpenReport "rpt_oficio_inicio_trabalho", acViewPreview
    EXIT SUB

    ElseIf comb_gerador.Text = "citação de policial militar" Then

    DoCmd.OpenReport "rpt_oficio_citação_acusado", acViewPreview
    EXIT SUB

    ElseIf comb_gerador.Text = "termo de acusação" And DCount("portaria", "tbl_fatos_imputados_acusação", "portaria= '" & Me.txt_portaria & "'") = 0 Then

    MsgBox "Ainda não existe dados preenchidos referentes ao processo. Favor inserir."
    DoCmd.OpenForm "frm_fatos_imputados_acusação", acNormal, , , acFormAdd
    EXIT SUB

    ElseiF comb_gerador.Text = "termo de acusação" And DCount("portaria", "tbl_fatos_imputados_acusação", "portaria= '" & Me.txt_portaria & "'") <> 0 Then

    DoCmd.OpenForm "frm_fatos_imputados_acusação", acNormal, , "[portaria] = '" & Me.txt_portaria & "'"
    EXIT SUB

    ElseIf comb_gerador.Text = "solicitação de policial ao comandante" Then

    DoCmd.OpenReport "rpt_oficio_solicita_policial", acViewPreview
    EXIT SUB

    ElseIf comb_gerador.Text = "apresentação de retorno" Then

    DoCmd.OpenReport "rpt_oficio_apresenta_retorno", acViewPreview
    EXIT SUB

    ElseIf comb_gerador.Text = "solicitação de ficha do policial" Then

    DoCmd.OpenReport "rpt_oficio_solicita_ficha", acViewPreview
    EXIT SUB

    ElseIf comb_gerador.Text = "notificação do policial - oitiva de testemunha" Then

    DoCmd.OpenReport "rpt_oficio_not_oit_testemunha", acViewPreview
    EXIT SUB

    ElseIf comb_gerador.Text = "notificação do policial - oitiva de vítima" Then

    DoCmd.OpenReport "rpt_oficio_not_oit_vitima", acViewPreview
    EXIT SUB

    End If

    End Sub


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.] Elohim Manutenção & Sistemas
    ..............Powered by MS Access with VBA code..............
    ............http://www.elohimsistemas.com.br/...........

    vailson
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 08/05/2015

    Re: [Resolvido]Onde está o erro?

    Mensagem  vailson em Sab 07 Maio 2016, 17:27

    Vou tentar com o exit sub em cada um conforme Pablo Neruda. Postarei o resultado.

    Essa aplicativo é para apuração de processos administrativos. Isso aí não é nem a metade dos documentos que serão gerados... O access é bastante funcional, incrível.

    vailson
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 85
    Registrado : 08/05/2015

    Re: [Resolvido]Onde está o erro?

    Mensagem  vailson em Seg 09 Maio 2016, 14:59

    Resolvido, obrigado

      Data/hora atual: Ter 06 Dez 2016, 05:47