Bom dia Rmaragno, a implementação disso no access é bem simples, você precisa de:
- 1 ou mais tabelas;
- Dependendo do filtro terá algumas consultas;
- 1 relatório;
- 1 Macro;
- 1 Formulário.
Veja esse exemplo bem simples pra ver se te atende: http://www.yamaguti.net/msdn/AjudaRelatorio.rar
Detalhamento desse exemplo passo a passo:
Macro M1
Possui comando de abrir, fechar e cancelar o formulário 1_Fonte e o comando de definir valor.
Relátório 1_Agenda_de_Audiencia
Possui eventos:
Ao abrir: Chama a macro M1.abrir
Ao fechar: Chama a macro M1.fechar
Formulário 1_Fonte
Possui dois botões, OK e Cancelar, eventos:
Botão Cancelar ao clicar chama a macro M1.cancelar
Botão OK chama o código abaixo:
Private Sub Comando4_Click()
'Condição de verificação
If [Form_1_Fonte].Advogado.Value = "todos" And [Form_1_Fonte].clientes.Value = "todos" And [Form_1_Fonte].UF.Value = "todos" Then
[Report_1_Agenda_de_Audiencia].RecordSource = "1_Agenda_de_Audiencia8"
End If
If [Form_1_Fonte].Advogado.Value = "todos" And [Form_1_Fonte].clientes.Value = "todos" And [Form_1_Fonte].UF.Value <> "todos" Then
[Report_1_Agenda_de_Audiencia].RecordSource = "1_Agenda_de_Audiencia7"
End If
If [Form_1_Fonte].Advogado.Value = "todos" And [Form_1_Fonte].clientes.Value <> "todos" And [Form_1_Fonte].UF.Value <> "todos" Then
[Report_1_Agenda_de_Audiencia].RecordSource = "1_Agenda_de_Audiencia6"
End If
If [Form_1_Fonte].Advogado.Value = "todos" And [Form_1_Fonte].clientes.Value <> "todos" And [Form_1_Fonte].UF.Value = "todos" Then
[Report_1_Agenda_de_Audiencia].RecordSource = "1_Agenda_de_Audiencia5"
End If
If [Form_1_Fonte].Advogado.Value <> "todos" And [Form_1_Fonte].clientes.Value = "todos" And [Form_1_Fonte].UF.Value = "todos" Then
[Report_1_Agenda_de_Audiencia].RecordSource = "1_Agenda_de_Audiencia4"
End If
If [Form_1_Fonte].Advogado.Value <> "todos" And [Form_1_Fonte].clientes.Value = "todos" And [Form_1_Fonte].UF.Value <> "todos" Then
[Report_1_Agenda_de_Audiencia].RecordSource = "1_Agenda_de_Audiencia3"
End If
If [Form_1_Fonte].Advogado.Value <> "todos" And [Form_1_Fonte].clientes.Value <> "todos" And [Form_1_Fonte].UF.Value <> "todos" Then
[Report_1_Agenda_de_Audiencia].RecordSource = "1_Agenda_de_Audiencia2"
End If
If [Form_1_Fonte].Advogado.Value <> "todos" And [Form_1_Fonte].clientes.Value <> "todos" And [Form_1_Fonte].UF.Value = "todos" Then
[Report_1_Agenda_de_Audiencia].RecordSource = "1_Agenda_de_Audiencia1"
End If
DoCmd.RepaintObject acReport, "1_Agenda_de_Audiencia"
'Acionamento da Macro
On Error GoTo Err_Comando4_Click
Dim stDocName As String
stDocName = "M1.OK"
DoCmd.RunMacro stDocName
Exit_Comando4_Click:
Exit Sub
Err_Comando4_Click:
MsgBox Err.Description
Resume Exit_Comando4_Click
End Sub
O botão ok é que faz a escolha de qual será a origem do relatório. Espero ter ajudado.
Melhor que dar o peixe é ensinar a pescar
Daniel Yamaguti
Gerente de TI