Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2009, 14:36
carlos79
 
Fecha de Ingreso: septiembre-2009
Ubicación: Venezuela
Mensajes: 92
Antigüedad: 14 años, 8 meses
Puntos: 1
Exclamación Como calcular dias hábiles en visual basic 6 y mysql.

Buenas tardes estimados amigos foristas :

Estoy desarrollando una aplicación donde pueda llevar el control de días hábiles para la ejecución de un trabajo.... Hice mi tabla en MYSQL llamada "feriados", aqui se encuentra el dia y el mes únicamente.

Ahora bien... encontré un código en el foro y me pareció excelente pero solo me descuenta los sábados y domingos.... no se como hacer para que me tome el feriado y lo reste también....

Estoy trabajando en visual basic 6 y mysql. Los controles para llevar el conteo de los dias lo hago a través de un dtpicker en format dd/mm ya que en mysql lo almacené como varchar para que no me tomara el año...

Les anexo el código.

Private Sub Command1_Click()

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim dif, i As Integer

fecha_inicial = Format(DTPicker1, "dd/mm")
fecha_final = Format(DTPicker2, "dd/mm")


Set cnn = New ADODB.Connection
cnn.ConnectionString = "DRIVER={mysql odbc 3.51 driver};" _
& "SERVER=192.168.112.23;" _
& "Database=devel;" _
& "UID=Efkar56Freg3;" _
& "password=NamfloEFBAM76;" _
& "port=3306;option3 "

cnn.Open

'On Error Resume Next

Set rst = New ADODB.Recordset

With rst
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open "SELECT fecha FROM feriados WHERE MONTH (fecha) = " & Month(fecha_inicial) + i & " AND DAY(fecha) = " & Day(fecha_inicial) + i, cnn
End With

dif = CDate(Format(fecha_final, "dd/mm")) - CDate(Format(fecha_inicial, "dd/mm"))

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

If rst.BOF = False And rst.EOF = False Then

dif = dif - 1

End If

End If

Next i

MsgBox "Dias habiles = " & dif, vbInformation, "Resultado"

End Sub



Cuando le digo que me calcule los dias hábiles del mes de febrero del año 2010 me dice que son 20 cuando en realidad son 18 (por los dias de semana santa). Yo le hago el select para que me los ubique y los descuente pero de igual forma no los resta...

AUXILIO POR FAVOR !!!!

saludos !!

Carlos.