El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Visual Basic/VB.NET
Foros del Guru > Visual Basic/VB.NET
Usuario Horas negativas
Desconocido
Enviado - 22/9/2004
 
Hola gente!!
Mi problema es el siguiente: Tengo una base de datos en SQL Server en la que tengo almacenados unos balances de tiempos en minutos (tipo numérico). Por ser balances, tengo tiempos positivos y negativos, e incluso superiores a 24 horas algunos. Esto se sale de lo permitido para campo tipo fecha/hora, que va de 00:00 a 23:59. Lo que quiero es pasar estos datos en horas a una bd en access mucho más simple y que me viene mejor para trabajar después. Lo que hago es pasar los minutos a un string, y en la bd de access lo intento pasar en tipo texto. Ése es el error, no se transforma al formato de horas y sigue pasando los datos como minutos. Si lo pongo en positivo, sí funciona. He marcado la línea a partir de la cual falla. Me muestra correctamente el Msgbox dato (por ejemplo -08:00), pero luego lo pasa mal a la bd (ese dato lo pasaría como -480).Os dejo el código por si tenéis alguna sugerencia, que me estoy volviendo loca..
Muchísimas gracias, ya sólo por haber leido la chapa esta.

Option Explicit
Public KelioSQL As Database
Public KelioACCESS As Database

Public tabAcumuladosDiariosSQL As Recordset
Public tabAcumuladosDiariosACCESS As Recordset

Dim Signo As Boolean
Dim dato As String

Public Function Minutos_HorasMinuto(Minutos As Double) As String

On Error GoTo ErrorHandler
If Minutos < 0 Then
Signo = False
Minutos = Minutos * (-1)
Else
Signo = True
End If
Minutos_HorasMinuto = Format$(CStr(Int(Minutos / 60) Mod 60), "00") & ":" & _
Format$(CStr(Minutos Mod 60), "00")

If Signo = False Then
Minutos_HorasMinuto = "-" + Minutos_HorasMinuto
End If
On Error GoTo 0
Exit Function

ErrorHandler:
Minutos_HorasMinuto = "0:00"
On Error GoTo 0
End Function


Private Sub Form_Load()

Set KelioSQL = OpenDatabase("E:\OUTSOURCING\data\KelUXSQL.mdb")
Set KelioACCESS = OpenDatabase("e:\outsourcing\web\pruebas\data\kelio2.mdb")



Set tabHorariosDiariosSQL = KelioSQL.OpenRecordset("dbo_THOR_JOUR", dbOpenDynaset)
Set tabHorariosDiariosACCESS = KelioACCESS.OpenRecordset("THOR_JOUR", dbOpenDynaset)




'ACUMULADOS DIARIOS (TCUMUL_JOUR)
tabAcumuladosDiariosSQL.MoveFirst
Do While Not tabAcumuladosDiariosSQL.EOF
tabAcumuladosDiariosACCESS.AddNew
If Not IsNull(tabAcumuladosDiariosSQL!CD_A_REPORTER) Then
*********** dato = Minutos_HorasMinuto (tabAcumuladosDiariosSQL!CD_A_REPORTER) ************
MsgBox dato
tabAcumuladosDiariosACCESS!CD_A_REPORTER = dato
Else
tabAcumuladosDiariosACCESS!CD_A_REPORTER = "0:00"
End If
tabAcumuladosDiariosACCESS!CD_A_REPORTER = tabAcumuladosDiariosSQL!CD_A_REPORTER
tabAcumuladosDiariosACCESS.Update

tabAcumuladosDiariosSQL.MoveNext
Loop
 
 

 

Contactos myStudio Network