Cogido de algún Guru de access..... tu podias haber hecho lo mismo.
'* Devuelve el primer día de la semana de la fecha pasada como parametro o en su defecto de la actual
'* uso: PrimerDiaSemana("11/01/01")
'*********************************************************************
Public Function PrimerDiaSemana(Optional datFecha As Date) As Date
If datFecha = "0:00:00 " Then datFecha = Date
PrimerDiaSemana = datFecha - Weekday(datFecha, 2) + 1
End Function ' PrimerDiaSemana
' Devuelve el ultimo día de la semana
Public Function UltimoDiaSemana(Optional datFecha As Date) As Date
If datFecha = "0:00:00 " Then datFecha = Date
UltimoDiaSemana = datFecha - Weekday(datFecha, 2) + 7
End Function ' UltimoDiaSemana
'*********************************************************************
'* Semana
'* Función que devuelve la semana a la que pertenece el día pasado como argumento
'* o en su defecto la actual, tomando como primera semana aquella en que esta el
'* día 1 de enero
'* Argumentos: opcional datFecha => cualquier dato considerable como fecha
'* uso: Semana(Date) / Semana("08/11/03") / Semana(37933)
'* ESH 08/11/03 19:12
'*********************************************************************
Public Function Semana(Optional datFecha As Date) As Integer
If datFecha = "0:00:00" Then datFecha = Date
Semana = DatePart("ww", datFecha, vbMonday)
End Function ' Semana