Alexandre Neves 2/7/2013, 22:02
Olá Teresa,
Não era isso que pretendia saber, mas vamos lá adiante para não atrasar mais e, se houver alguns ajustes, faremos depois
- elimina a consulta Qbf_Processo
- elimina a origem dos dados no formulário Qbf_Processo
- ao abrir do relatório coloca
RecordSource = "SELECT PROJECTO.COD_PROJ, PROJECTO.DESC_PROJ, TIPO_PROJ.DESC_TIPO_PROJ, ACCAO_PROJ.DESC_ACCAO, PROCESSO.DESC_PROC, ACCAO_PROJ.VALOR_APROVADO, TIPO_PARECER.DESCRIÇÃO_PARECER, PROCESSO.DT_PEDIDO_PARECER, PROCESSO.DT_RESP_PARECER, PROCESSO.DT_INI_PROCED, TIPO_PROCED.DESC_TIPO_PROCED, PROC_STATUS.DESC_PROC_STATUS, PROCESSO.DT_STATUS, PROCESSO.OBS_PROC FROM TIPO_PROJ INNER JOIN (TIPO_PROCED INNER JOIN (TIPO_PARECER INNER JOIN (PROJECTO INNER JOIN (PROC_STATUS INNER JOIN (ACCAO_PROJ INNER JOIN PROCESSO ON ACCAO_PROJ.ID_ACCAO = PROCESSO.ID_ACCAO) ON PROC_STATUS.ID_PROC_STATUS = PROCESSO.ID_PROC_STATUS) ON PROJECTO.ID_PROJ = ACCAO_PROJ.ID_PROJ) ON TIPO_PARECER.ID_TIPO_PARECER = PROCESSO.ID_TIPO_PARECER) ON TIPO_PROCED.ID_TIPO_PROCED = PROCESSO.ID_TIPO_PROCED) ON TIPO_PROJ.ID_TIPO_PROJ = PROJECTO.ID_TIPO_PROJ"
- no botão abrir, coloca o seguinte código
Dim strFiltro As String
If Len("" & ID_PROJ) > 0 Then strFiltro = " and COD_PROJ=" & ID_PROJ
If Len("" & ID_ACCAO) > 0 Then strFiltro = strFiltro & " and ID_ACCAO=" & ID_ACCAO
If Len("" & ID_TIPO_PARECER) > 0 Then strFiltro = strFiltro & " and ID_TIPO_PARECER=" & ID_TIPO_PARECER
If Len("" & ID_TIPO_PROCED) > 0 Then strFiltro = strFiltro & " and ID_TIPO_PROCED=" & ID_TIPO_PROCED
If Len("" & ID_PROC_STATUS) > 0 Then strFiltro = strFiltro & " and ID_PROC_STATUS=" & ID_PROC_STATUS
If IsDate(DT_STATUS_INI) And IsDate(DT_STATUS_FIM) Then
strFiltro = strFiltro & " and DT_STATUS between #" & Format(DT_STATUS_INI, "mm-dd-yyyy") & "# and #" & Format(DT_STATUS_FIM, "mm-dd-yyyy") & "#"
ElseIf IsDate(DT_STATUS_INI) Then
strFiltro = strFiltro & " and DT_STATUS >= #" & Format(DT_STATUS_INI, "mm-dd-yyyy") & "#"
ElseIf IsDate(DT_STATUS_FIM) Then
strFiltro = strFiltro & " and DT_STATUS <= #" & Format(DT_STATUS_FIM, "mm-dd-yyyy") & "#"
End If
DoCmd.OpenReport "QBF_PROCESSO", acViewPreview, , Mid(strFiltro, 6)
- Um conselho: nomeia os controlos de forma normalizada, temos falado muitas vezes sobre o assunto.