Olá. Tenho uma função que encontrei neste video . Ora o que pretendo é quase exatamente isso. A única diferença é que queria que a última opção fosse SEMANA SEGUINTE (a começar na segunda e acabar na sexta) em vez de ESTA SEMANA, alterei essa parte do código e em vez de ser + 2 ficou + 7 (não sei se há outra maneira ou se é isso que esta a fazer funcionar mal).
No video o campo que tem a data chama-se weekdate, no meu é DataInicio (que será o inicio do período de férias), até aí pensei que td funcionasse bem, mas não foi bem isso que aconteceu. Eu julgo que tem a ver com o formato da data, (mm/dd/aaaa e na minha BD é dd/mm/aaaa) já tentei alterar a função, mas sem sucesso.
O problema está que no período 11/10/201 a 12/10/2014 aparece como sendo deste trimestre, mês e semana seguinte o de 10/11/2013 a 20/11/2013 já não, mas é de outro ano.
Fica aqui a função:
Private Sub grpChoice_AfterUpdate()
Dim dDate As Date
Select Case grpChoice.Value
Case 1: dDate = "1/1/1900"
Case 2: dDate = "1/1/" & Year(Date)
'Alterei o 2 pelo 7 para poder ver a semana seguinte, mas não sei se será a melhor maneira.
'Ajuda neste ponto. Mesmo com o 2 vejo o período de outubro e de novembro na semana seguinte, neste mês e neste trimestre (deviam estar no 4º trimestre)
Case 3:
Select Case Month(Date)
Case 1 To 3: dDate = "1/1/" & Year(Date)
Case 4 To 6: dDate = "4/1/" & Year(Date)
Case 7 To 9: dDate = "7/1/" & Year(Date)
Case 10 To 12: dDate = "10/1/" & Year(Date)
End Select
Case 4: dDate = Month(Date) & "/1/" & Year(Date)
Case 5: dDate = Date - Weekday(Date) + 7
End Select
Me.Timesheets_SubForm.Form.Filter = "[Datainicio]>=#" & dDate & "#"
Me.Timesheets_SubForm.Form.FilterOn = True
If dDate = "1/1/1900" Then
Me.Timesheets_SubForm.Form.FilterOn = False
End If
End Sub
https://www.dropbox.com/sh/xa366fss6mmgpmo/AAAH_Y-2VtHX6TDRcfG1D7mna
No video o campo que tem a data chama-se weekdate, no meu é DataInicio (que será o inicio do período de férias), até aí pensei que td funcionasse bem, mas não foi bem isso que aconteceu. Eu julgo que tem a ver com o formato da data, (mm/dd/aaaa e na minha BD é dd/mm/aaaa) já tentei alterar a função, mas sem sucesso.
O problema está que no período 11/10/201 a 12/10/2014 aparece como sendo deste trimestre, mês e semana seguinte o de 10/11/2013 a 20/11/2013 já não, mas é de outro ano.
Fica aqui a função:
Private Sub grpChoice_AfterUpdate()
Dim dDate As Date
Select Case grpChoice.Value
Case 1: dDate = "1/1/1900"
Case 2: dDate = "1/1/" & Year(Date)
'Alterei o 2 pelo 7 para poder ver a semana seguinte, mas não sei se será a melhor maneira.
'Ajuda neste ponto. Mesmo com o 2 vejo o período de outubro e de novembro na semana seguinte, neste mês e neste trimestre (deviam estar no 4º trimestre)
Case 3:
Select Case Month(Date)
Case 1 To 3: dDate = "1/1/" & Year(Date)
Case 4 To 6: dDate = "4/1/" & Year(Date)
Case 7 To 9: dDate = "7/1/" & Year(Date)
Case 10 To 12: dDate = "10/1/" & Year(Date)
End Select
Case 4: dDate = Month(Date) & "/1/" & Year(Date)
Case 5: dDate = Date - Weekday(Date) + 7
End Select
Me.Timesheets_SubForm.Form.Filter = "[Datainicio]>=#" & dDate & "#"
Me.Timesheets_SubForm.Form.FilterOn = True
If dDate = "1/1/1900" Then
Me.Timesheets_SubForm.Form.FilterOn = False
End If
End Sub
https://www.dropbox.com/sh/xa366fss6mmgpmo/AAAH_Y-2VtHX6TDRcfG1D7mna