Código:
Ahora, he probado imprimir en una caja de texto (boxht) valor por valor para saber como va saliendo y donde está el error, el cuál es el siguiente: Private Sub btnCalcular_Click() Dim he As Date Dim hs As Date Dim Total As Double Dim Pago As Double Dim Total2 As Double Dim Pago2 As Double Dim Mult As Double Dim Suma As Double Dim MyStringS As String Dim MyStringE As String Dim Cadena1 As String Dim Cadena2 As String Dim Cadena3 As String Dim Cadena4 As String Dim Entero1 As Integer Dim Entero2 As Integer Dim Entero3 As Integer Dim Entero4 As Integer Dim i As Long 'Paso valores de tipo fecha a variables de tipo fecha hs = Val("HSalida") he = Val("HEntrada") 'Convierto los valores tipo fecha a tipo cadena MyStringS = CStr(hs) MyStringE = CStr(he) 'Extraer horas de cadena de Horas Salida Cadena1 = Left(MyStringS, 8) Cadena2 = Mid(MyStringS, 4, 2) 'Extraer horas de cadenas de Horas Entrada Cadena3 = Left(MyStringE, 8) Cadena4 = Mid(MyStringE, 4, 2) 'Convertir cadenas en Enteros Entero1 = Val(Cadena1) Entero2 = Val(Cadena2) Entero3 = Val(Cadena3) Entero4 = Val(Cadena4) 'Calcular Pago por Horas Total = Entero3 - Entero1 Pago = Total * 100 'Calcular pago por minutos Total2 = Entero4 - Entero2 Pago2 = Total2 * 1.6 If Pago2 < 0 Then Mult = Pago2 * -1 Else Mult = Pago2 End If Suma = Pago + Mult boxht = Val(Total) & ":" & Val(Total2) boxpagar = Str(Suma) End Sub
1. La hora de salida toma el valor exacto de la base de datos, p.ej. 12:00, sin embargo la hora de entrada no toma el valor exacto, p.ej. 07:00, la hora de entrada me toma el mismo valor que la hora de salida y en el resultado me sale lo siguiente:
boxht = 00:00
boxpagar = 0
El funcionamiento, al parecer es el correcto, ya que si toma como valores 12:00 (salida) y 12:00 (entrada) por ovbias razones el resultado será el mostrado anteriormente. Sin embargo no sé porque no toma el valor correcto de la hora de entrada.
Si se preguntan poque no use Datadiff, es porque leí por ahí que había problemas con algunos tipos de horas (Doce de la noche = 00:00 a.m.). Configuré el campo de las horas en Access para que quede de las 01:00 a.m. a las 24:00 p.m.
Regresando al error, alguien sabe porque no me toma la hora normal?
Como dato opcional, estoy usando ADO en la conexión y uso un objeto Adodc para visualizar a cada empleado y ahi si veo las horas correctamente (entrad y salida)
Saludos a todos.