Boa noite a todos.
Estou tentando criar uma rotina que me mostre no Form Frm_Prazos_Processos os processos cujo prazo se encontram a vencer em até 5 dias.
Criei a consulta CNS_PrazosProximos
Contudo quando abro o respectivo form não mostra nada na ListBox lst_PrazosProximos.
Os códigos nesse form são....
Obrigado a todos.
Estou tentando criar uma rotina que me mostre no Form Frm_Prazos_Processos os processos cujo prazo se encontram a vencer em até 5 dias.
Criei a consulta CNS_PrazosProximos
- Código:
SELECT Processo_Numero, Data_Inicial, (Data_Inicial + Prazo_Dias) AS Data_Final
FROM tbl_Processos
WHERE (Data_Inicial + Prazo_Dias) <= Date() + 5 AND (Data_Inicial + Prazo_Dias) >= Date();
Contudo quando abro o respectivo form não mostra nada na ListBox lst_PrazosProximos.
Os códigos nesse form são....
- Código:
Option Compare Database
Private Sub Form_Open(Cancel As Integer)
' Atualiza a ListBox e mostra o aviso
Call AtualizarListBox
Dim rs As DAO.Recordset
Dim strAviso As String
' Consulta para gerar o aviso de processos próximos
Set rs = CurrentDb.OpenRecordset("SELECT Processo_Numero, (Data_Inicial + Prazo_Dias) AS Data_Final FROM tbl_Processos_Prazos WHERE (Data_Inicial + Prazo_Dias) <= Date() + 5 AND (Data_Inicial + Prazo_Dias) >= Date()")
If Not rs.EOF Then
strAviso = "Os seguintes processos precisam ser resolvidos em breve:" & vbCrLf & vbCrLf
Do While Not rs.EOF
strAviso = strAviso & "Processo: " & rs!Processo_Numero & " - Prazo: " & rs!Data_Final & vbCrLf
rs.MoveNext
Loop
MsgBox strAviso, vbExclamation, "Aviso de Prazos Próximos"
End If
rs.Close
Set rs = Nothing
End Sub
Private Sub AtualizarListBox()
Dim rs As DAO.Recordset
Dim strSQL As String
' Consulta para preencher a ListBox com processos próximos
strSQL = "SELECT Processo_Numero, (Data_Inicial + Prazo_Dias - Date()) AS Dias_Restantes, ID_Processos " & _
"FROM tbl_Processos " & _
"WHERE (Data_Inicial + Prazo_Dias) <= Date() + 5 AND (Data_Inicial + Prazo_Dias) >= Date()"
Set rs = CurrentDb.OpenRecordset(strSQL)
' Limpa a ListBox antes de adicionar novos itens
Me.lst_PrazosProximos.RowSourceType = "Value List" ' Garantir que o tipo de origem é "Value List"
Me.lst_PrazosProximos.RowSource = ""
Me.lst_PrazosProximos.ColumnCount = 3
Me.lst_PrazosProximos.ColumnWidths = "2cm;2cm;0cm" ' Oculta a coluna do ID
' Adiciona itens à ListBox
Do While Not rs.EOF
Me.lst_PrazosProximos.AddItem rs!Processo_Numero & ";" & rs!Dias_Restantes & ";" & rs!Id_Processos
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub
Private Sub lst_PrazosProximos_Click()
Dim selectedID As Long
' Verifica se um item foi selecionado
If Me.lst_PrazosProximos.ListIndex <> -1 Then
selectedID = Me.lst_PrazosProximos.Column(2) ' A terceira coluna contém o ID do processo
' Abre o formulário com base no ID selecionado
DoCmd.OpenForm "frm_Processos", , , "ID_Processos = " & selectedID
End If
End Sub
Obrigado a todos.