| 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
|
| |
|
|
|