MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Ajuda com relatório por TURNO escolar_Novo 2

    Compartilhe

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 259
    Registrado : 26/06/2013

    [Resolvido]Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  cjsilva2013 em 26/2/2018, 11:14

    Bom dia a todos,

    Havia fechado o outo tópico referente a emissão de carteirinhas para alunos, filtrando por turno...

    O Grande Silvio me ajudou, com o script conforme endereço abaixo, porém verifiquei que mesmo fazendo as alterações, só consigo visualizar a primeira opção...

    No caso, preciso visualizar as três opções, quando no cadastro do aluno estiver marcada a opção seja: Matutino, Vespertino ou Noturno...

    Tá meio caminho andado... Mais preciso de ajuda para desenrolar o restante...

    Minha dificuldade é porque estou aprendendo. E ainda não tinha feito ou visto algo no fórum... Procurei na internet e não encontrei um BD para emissão de carteirinhas no Access...

    Por isso peço ajuda aos companheiros...

    Segue link com BD...

    O que preciso: É que ao selecionar a checkbox e clicar no botão, abra o relatório referente aos alunos só do turno X... Pois são três modelos de carteirinhas para cada turno...

    [Você precisa estar registrado e conectado para ver este link.]

    thiagonsilvaa
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 12/01/2017

    Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  thiagonsilvaa em 26/2/2018, 12:31

    Bom dia !

    Uma dúvida, o que diferencia o turno de cada aluno ? É o campo (texto curto) "turno", ou os campos (sim/não) vespertino, matutino ou noturno ?

    Se for o campo texto "turno", basta criar três consultas filtrando por "Vespertino, matutino ou noturno", ou se for pelos campos sim/não, você cria pra cada turno uma consulta e no critério referente ao turno você coloca " =-1 ", ou, verdadeiro e baseia os relatórios em cada consulta criada.

    Qualquer dúvida, volte a retornar.

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 259
    Registrado : 26/06/2013

    Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  cjsilva2013 em 26/2/2018, 13:41

    Bom dia Thiago,

    O script no botão está conforme abaixo. Criei para cada carteirinha uma consulta...

    O Campo para critério na consulta é o "CargoAtual".

    Private Sub cmdCredenciaisPDF_Click()
    On Error GoTo Err_cmdCredenciaisPDF_Click


    Dim stDocName As String
    Dim F As String
    Dim G As String
    Dim H As String


    'F = ""
    'G = ""
    'H = ""



    'Constroi o Filtro de acordo com o valor do campo
    If Me.Matutino = -1 Then 'F = "CargoAtual = 'Turno Matutino'"   ' acrescentado o TM
    'Abre o Relatório filtrando de acordo com o filtro construido a cima.
    stDocName = "rel_Cred_Matutino"
    DoCmd.OutputTo acOutputReport, "rel_Cred_Matutino", acFormatPDF, "C:\IGBereia\Credenciais\" & "Credencial de Aluno Matutino  - " & Format(Now(), "ddmmyy") & ".pdf", True, , F
    DoCmd.Maximize

    If Me.Vespertino = -1 Then ' G = G & "CargoAtual = 'Turno Vespertino' OR " ' acrescentado o TV
    'Abre o Relatório filtrando de acordo com o filtro construido a cima.
    stDocName = "rel_Cred_Vespertino"
    DoCmd.OutputTo acOutputReport, "rel_Cred_Vespertino", acFormatPDF, "C:\IGBereia\Credenciais\" & "Credencial de Aluno Vespertino  - " & Format(Now(), "ddmmyy") & ".pdf", True, , G
    DoCmd.Maximize

    If Me.Noturno = -1 Then ' H = H & "CargoAtual = 'Turno Noturno' OR " ' acrescentado o TN
    'Abre o Relatório filtrando de acordo com o filtro construido a cima.
    stDocName = "rel_Cred_Noturno"
    DoCmd.OutputTo acOutputReport, "rel_Cred_Noturno", acFormatPDF, "C:\IGBereia\Credenciais\" & "Credencial de Aluno Noturno  - " & Format(Now(), "ddmmyy") & ".pdf", True, , H
    DoCmd.Maximize
    End If
    End If
    End If





    'Remove os 5 ultimos caracteres do Filtro, que será o " OR "
    'F = left(F, Len(F) - 5)
    'G = left(G, Len(G) - 5)
    'H = left(H, Len(H) - 5)

    Exit_cmdCredenciaisPDF_Click:
       Exit Sub

    Err_cmdCredenciaisPDF_Click:
       MsgBox Err.Description
       Resume Exit_cmdCredenciaisPDF_Click
       

    End Sub

    thiagonsilvaa
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 12/01/2017

    Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  thiagonsilvaa em 26/2/2018, 14:32

    Bom dia.
    Pela base de dados que você anexou não há a "tblmembros" a qual faz a filtragem.

    Uma dica, faça um grupo de opções e um botão para realizar as ações, acredito que resolva seu problema.

    Por exemplo:
    (Código no click do botão)
    If me.qdturnos.value = 1 then
    abre o relatório X
    elseif me.qdturnos.value = 2 then
    Abre o relatório Y
    elseif me.qdturnos.value = 3 then
    abre o relatório Z
    End if

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 259
    Registrado : 26/06/2013

    Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  cjsilva2013 em 26/2/2018, 14:40

    Vou estudar uma forma thiago...

    Se vc baixar o exemplo, ao clicar no botão vai emitir o relatório... Matutino com a credencial...

    Se passar para os demais registros, não emite...

    Criei as consultas que faltavam, no campo vespertino, no critério coloquei verdadeiro...

    Alterei a tabela no relatório para as consultas criadas...

    Mesmo assim, só emite o primeiro registro: Matutino

    Vou continuar tentando aqui...

    thiagonsilvaa
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 12/01/2017

    Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  thiagonsilvaa em 26/2/2018, 15:18

    Tente alterar essa parte do código para:

    Código:
    'Constroi o Filtro de acordo com o valor do campo
    If Me.Matutino = -1 Then 'F = "CargoAtual = 'Turno Matutino'"  ' acrescentado o TM
    'Abre o Relatório filtrando de acordo com o filtro construido a cima.
    stDocName = "rel_Cred_Matutino"
    DoCmd.OutputTo acOutputReport, "rel_Cred_Matutino", acFormatPDF, "C:\IGBereia\Credenciais\" & "Credencial de Aluno Matutino  - " & Format(Now(), "ddmmyy") & ".pdf", True, , F
    DoCmd.Maximize

    elseIf Me.Vespertino = -1 Then ' G = G & "CargoAtual = 'Turno Vespertino' OR " ' acrescentado o TV
    'Abre o Relatório filtrando de acordo com o filtro construido a cima.
    stDocName = "rel_Cred_Vespertino"
    DoCmd.OutputTo acOutputReport, "rel_Cred_Vespertino", acFormatPDF, "C:\IGBereia\Credenciais\" & "Credencial de Aluno Vespertino  - " & Format(Now(), "ddmmyy") & ".pdf", True, , G
    DoCmd.Maximize

    elseIf Me.Noturno = -1 Then ' H = H & "CargoAtual = 'Turno Noturno' OR " ' acrescentado o TN
    'Abre o Relatório filtrando de acordo com o filtro construido a cima.
    stDocName = "rel_Cred_Noturno"
    DoCmd.OutputTo acOutputReport, "rel_Cred_Noturno", acFormatPDF, "C:\IGBereia\Credenciais\" & "Credencial de Aluno Noturno  - " & Format(Now(), "ddmmyy") & ".pdf", True, , H
    DoCmd.Maximize
    End If

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 259
    Registrado : 26/06/2013

    Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  cjsilva2013 em 26/2/2018, 18:08

    Grande Thiago, usei as funções que você disponibilizou e fiz outros ajustes nas consultas... Deu certo agora. Está emitindo.

    Consigo visulizar todas...

    Agora vou estudar uma forma de emitir só o registro atual... Caso queira imprimir a credencial só do aluno X e a impressão também...

    Obrigado pela ajuda...

    Fica aí o exemplo para outros utilizarem...

    thiagonsilvaa
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 12/01/2017

    Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  thiagonsilvaa em 26/2/2018, 18:20

    Boa tarde !

    Que bom que deu certo.
    Agora sobre imprimir o registro atual pode-se usar o CPF do aluno para isso ou algum número que unifique aquele aluno. Como o cpf é uma identificação única pra cada pessoa, fica fácil, por exemplo:

    DoCmd.openreport nomedorelatorio, acViewPreview , , "CPF = '" & me.campocpf & "'"

    Qualquer dúvida volte a retornar.
    Abraços.

    cjsilva2013
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 259
    Registrado : 26/06/2013

    Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  cjsilva2013 em 26/2/2018, 20:24

    Boa tarde,

    Deu certo... Obrigado Thiago. Você me ajudou muito!

    Estava batendo cabeça pra fazer a função e sem sucesso... Desde já fico em dívida...

    Deus abençoe você, sua família e lhe dê cada dia mais conhecimento e inteligência na execução dos seus objetivos...

    Nos itens que você escreveu, estou colocando seus direitos... Depois vou subir a base aqui no fórum e é justo colocar... Para ficar como exemplo e se alguém quiser melhorar o projeto é bem vindo...

    Abraço,

    Resolvido.


    thiagonsilvaa
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 173
    Registrado : 12/01/2017

    [Resolvido]Ajuda com relatório por TURNO escolar_Novo 2

    Mensagem  thiagonsilvaa em 26/2/2018, 21:41

    Boa noite meu caro !
    Fico feliz em ter dado certo.

    Com certeza seu exemplo será de grande valia aqui no fórum.

    O fórum agradece o retorno !!!

    Abraços.

      Data/hora atual: 19/11/2018, 06:01