
19/12/2006, 07:47
|
| | Fecha de Ingreso: febrero-2005
Mensajes: 12
Antigüedad: 20 años, 2 meses Puntos: 0 | |
AYUDAME PORFA FECHA SIGUIENTE Y dias habiles Dim mirecordset As Recordset
Dim conexion As Connection
'
Dim dif, i As Integer
Dim fecha_inicial, fecha_final_un_dia_mas_mientra_nosea_sab_dom_fer As String
' Para inicializar el objeto Connexion
Set conexion = New Connection
' La Base de datos tiene que estar en la carpeta del proyecto
conexion.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\BD.mdb;Persist Security Info=False;"
conexion.Open
'
fecha_inicial = "01/12/2006"
fecha_final_un_dia_mas_mientra_nosea_sab_dom_fer = "08/12/2006"
Por favor ayudame estoy tratando de desarrollar un pequeño for que me tiene loco. Necesito que le pregunte a la fecha final… lo siguiente.
Cuando me valla a dar la fecha fina me debe dar una fecha que no sea sabado ni domingo y tampoco feriado entonces:
Ejemplo 1:
Fecha fina "08/12/2006" es dia viernes, luego viene sabado y domingo que son dias feriado en este caso la fecha que debe darme es el dia lunes "11/12/2006" mientra esta no sea un dia festivo, si en dado caso el lunes "11/12/2006" es un dia festivo el dia que me deberia dar es el martes mientra no sea un dia festivo ya sabemos que este dia festivo son los que se encuentra en la base de dato.
En pocas palabras lo que necesito es que me de la fechas "dd/mm/yyyy" del dia siguiente mientra la fecha no sea sabado, domingo y feriado.
Y luego continuo con el codigo de abajo.
dif = CDate(fecha_final_un_dia_mas_mientra_nosea_sab_dom _fer) - CDate(fecha_inicial)
For i = 1 To dif
If Weekday(CDate(fecha_inicial) + i, vbMonday) = 6 Or Weekday(CDate(fecha_inicial) + i, vbMonday) = 7 Then
dif = dif - 1
Else
Set mirecordset = conexion.Execute("SELECT fecha FROM festivos WHERE MONTH(fecha) = " & Month(CDate(fecha_inicial) + i) & " AND DAY(fecha) = " & Day(CDate(fecha_inicial) + i))
If mirecordset.BOF = False And mirecordset.EOF = False Then
dif = dif - 1
End If
End If
Next i
MsgBox "Dias habiles = " & dif, vbInformation, "Resultado" |