La Web del Programador: Comunidad de Programadores
 
    Pregunta:  15299 - NúMERO DE SEMANA DEL AñO
Autor:  Luis Sanz Lucas
Hola:
Me gustaría saber si existe alguna función de saber el número de semana en al que está un día determinado, o sea, yo le paso una fecha en el formato que sea y me devuelve el número de semana dentro del año.
Muchas gracias.

  Respuesta:  Pablo Coatl
Que tal Luis, hace un año aproximadamente estaba buscando lo mismo.
Para resolver el problema utilize codigo SQL de Access 97(realizado mediante una consulta) y asi obtener el numero de semana del año.
El único inconveniente es que debes crear una pequeña base de datos donde almecenes la fecha de inicio de la semana Uno.

El codigo SQL es el siguiente:

'En este ejemplo la Base de DAtos se llama "CONTROL", en ella hay una tabla llamada "Configuracion"
'Esta tabla contiene los campos:
'Fecha Inicial' de tipo Fecha
'Semana Actual' de tipo Numerico, puede ser Byte

'En tu formulario debes tener un Control DTPicker (de preferencia) o en su defecto utilizar un MaskEditBox
'Un boton de Comando
'Un control Data

private sub command1_click()
Dim arc as Database
Dim rs as Recordset
set arc=opendatabase(app.path & "\Control.mdb") 'app.path puedes cambiarlo por la ruta de la base de datos
'en caso de que utilices un mask edit control sustituye dtpicker1 por MaskEdBox1
set rs=arc.openreceordset("SELECT Int((#" & format(DtPicker1.value,"mm/dd/yyyy) & "# -[Configuracion]![Fecha Inicial])/7)+1 AS Semana" _
& " FROM Configuracion;")
if rs.recordcount>0 then
msgbox "La semana es: " & rs(0)
end if
rs.close
arc.close
set arc=nothing
end sub

Solo obtendras las semanas del año que hayas configurado en tu base de datos control, en caso de que coloques fechas menores te dara semanas negativas, si es demasiado superior te dara semanas mayores a 52 o 53
Espero que te sirva este control.
Saludos