Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Consulta Restar horas GTM al exportar de sql a excel

Estas en el tema de Consulta Restar horas GTM al exportar de sql a excel en el foro de Visual Basic clásico en Foros del Web. Buen día compañeros espero que se encuentren bien, Dejo mi post para ver si alguien me puede dar luz con este tema, el cual es ...
  #1 (permalink)  
Antiguo 05/06/2014, 09:17
 
Fecha de Ingreso: enero-2014
Ubicación: Guadalajara
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Consulta Restar horas GTM al exportar de sql a excel

Buen día compañeros espero que se encuentren bien,

Dejo mi post para ver si alguien me puede dar luz con este tema, el cual es el siguiente:

Una aplicación externa guardo cierta información en una BD de SQL y por limitantes con VB6 exporto esos datos a excel, el problema es que la aplicación exporta las fechas que es una de la información que uso en formato de 0 GTM, es decir, no le importa en que país o si usas el horario de verano, etc,.

El detalle que el horario para esta empresa es muy importante por la información que manejan, pero le he buscado y rebuscado y no encuentro como puedo aplicarle un + 6 hrs a las celdas donde vienen las fechas para que muestre correctamente el horario.

De antemano agradezco el apoyo

Código vb:
Ver original
  1. Public Sub rep_Alarmas()
  2. On Error Resume Next
  3.   Dim area As String
  4.    
  5.     Inicio_Consulta
  6.      
  7. Set Consulta = New ADODB.Recordset
  8.     Consulta.Open Comando, Conexion
  9. If Not Consulta.EOF Then
  10.  filename = rsTocsv(Consulta, "C:\Reportes_Generales\Historico_Alarmas_" & VBA.Format(Now, "ddmmyy hhmmss") & ".xlsx", True)
  11.    
  12.  Barras "Recolectando Registros de Alarmas...", 30 * 3.46
  13. 'Abrir plantilla de excel
  14. On Error GoTo Error_NoExiste 'Mandar Mensaje de Error de que no existe Archivo
  15.     Set Excelapp = CreateObject("Excel.Application") 'loads and instance of Excel in memory
  16.     Excelapp.Workbooks.Open (filename) 'Abrir"
  17.  
  18. '--------Llenar tabla de excel con los datos encontrados
  19. DoEvents
  20.  Barras "Exportando Datos a Archivo de Excel...", 60 * 3.46
  21.     With Excelapp
  22.  
  23. '--------------------Mover los datos a la columna requerida
  24.     .Worksheets(1).Range("D1").Select
  25.      .Worksheets(1).Range(.Selection, .Selection.End(xlDown)).Cut
  26.      .Worksheets(1).Range("G2").Select
  27.      .ActiveSheet.Paste
  28.      .Worksheets(1).Range("C1").Select
  29.      .Worksheets(1).Range(.Selection, .Selection.End(xlDown)).Cut
  30.      .Worksheets(1).Range("E2").Select
  31.      .ActiveSheet.Paste
  32.      .Worksheets(1).Range("B1").Select
  33.      .Worksheets(1).Range(.Selection, .Selection.End(xlDown)).Cut
  34.      .Worksheets(1).Range("C2").Select
  35.      .ActiveSheet.Paste
  36.      .Worksheets(1).Range("A1").Select
  37.      .Worksheets(1).Range(.Selection, .Selection.End(xlDown)).Cut
  38.      .Worksheets(1).Range("A2").Select
  39.      .ActiveSheet.Paste
  40.  
  41. '--------------------dar formato a las columnas
  42.    .Worksheets(1).Columns("A:A").ColumnWidth = 12.86
  43.     .Worksheets(1).Columns("C:C").ColumnWidth = 24.14
  44.     .Worksheets(1).Columns("E:E").ColumnWidth = 78.29
  45.     .Worksheets(1).Columns("G:G").ColumnWidth = 33.71
  46.     .Worksheets(1).Columns("B:B").ColumnWidth = 1
  47.     .Worksheets(1).Columns("D:D").ColumnWidth = 1
  48.     .Worksheets(1).Columns("F:F").ColumnWidth = 1
  49.     .Worksheets(1).Rows("1:1").RowHeight = 52.5
  50.     .Worksheets(1).Range("A:A").HorizontalAlignment = xlRight
  51.     .Worksheets(1).Range("B2:C2").Merge
  52.     .Worksheets(1).Range("D2:E2").Merge
  53.     .Worksheets(1).Range("F2:G2").Merge
  54.     .Worksheets(1).Range("A2:F2").Select
  55.     With .Selection
  56.         .Borders(xlEdgeLeft).LineStyle = xlContinuous
  57.         .Borders(xlEdgeLeft).Weight = xlMedium
  58.         .Borders(xlEdgeTop).LineStyle = xlContinuous
  59.         .Borders(xlEdgeTop).Weight = xlMedium
  60.         .Borders(xlEdgeBottom).LineStyle = xlContinuous
  61.         .Borders(xlEdgeBottom).Weight = xlMedium
  62.         .Borders(xlEdgeRight).LineStyle = xlContinuous
  63.         .Borders(xlEdgeRight).Weight = xlMedium
  64.         .Borders(xlInsideVertical).LineStyle = xlContinuous
  65.         .Borders(xlInsideVertical).Weight = xlThin
  66.         .HorizontalAlignment = xlCenter
  67.         .Font.Bold = True
  68.     End With
  69.     .Worksheets(1).Range("E1:E1").HorizontalAlignment = xlRight
  70.     .Worksheets(1).Range("G1:G1").HorizontalAlignment = xlLeft
  71.  
  72. '--------------------Escribir fecha del Reporte
  73.    .Worksheets(1).Range("E1").Value = "Fecha: "
  74.     .Worksheets(1).Range("F1").Value = VBA.Format(ThisDisplay.datestart, "DD/MM/YYYY")
  75.  
  76. '--------------------Ponemos logo del cliente
  77.    .Worksheets(1).Range("A1").Select
  78.     .ActiveSheet.Pictures.Insert("Ruta").Select
  79.    End With
  80.    DoEvents
  81.  
  82. ' Barras "Exportando Datos a Archivo de Excel...", (renglon * (35 / totallineas)) * 3.46 + (60 * 3.46), renglon * (35 / totallineas) + 60
  83. Barras "Exportando Datos a Archivo de Excel...", (80 * 3.46)
  84.        
  85.            Else
  86.             MsgBox "No se encontraron datos en la busqueda...", vbInformation, "No hay datos"
  87.             Objetos True
  88.            GoTo Salir
  89.            End If
  90.  Cerrar_conexionSQL
  91. guardar:
  92.         DoEvents
  93.  Barras "Exportando Datos a Archivo de Excel...", 100 * 3.46
  94.           Excelapp.ActiveWorkbook.Save
  95.         Excelapp.Quit
  96.        Set Excelapp = Nothing
  97.           MsgBox "El Reporte Fue Creado con  Exito en:" & VBA.Chr(13) & _
  98.            filename, vbInformation, " Status del Reporte"
  99.      Objetos True
  100.  ThisDisplay.crearRep.Visible = True
  101.     Exit Sub
  102. Salir:
  103.  Cerrar_conexionSQL
  104.  Objetos True
  105.  ThisDisplay.crearRep.Visible = True
  106.     Exit Sub
  107.  
  108. 'Errores al obtener tags
  109. Error_NoExiste:
  110.     MsgBox "Error en Archivo." & VBA.Chr(13) & _
  111.            "Verifique que la siguiente ruta existe: Ruta" & VBA.Chr(13) & VBA.Err.Description, VBA.vbCritical, "Error en Ruta de Archivo..."
  112.            GoTo Salir
  113.   Exit Sub
  114.  
  115. 'Errores Durante la Creacion del Reporte
  116. Error_BaseDatos:
  117.     MsgBox "Error con Base de Datos" & VBA.Chr(13) & _
  118.            "Error de Sistema: " & VBA.Chr(13) & VBA.Err.Description, VBA.vbCritical, "Error Conexion con Base de Datos"
  119.            GoTo Salir
  120.  
  121. End Sub
  #2 (permalink)  
Antiguo 05/06/2014, 09:33
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Consulta Restar horas GTM al exportar de sql a excel

Y te valdría que se sumara las 6 horas en el momento de lanzar al consulta para traer los datos al Excel? Si es así, podrías poner la consulta que usas (no está en el código que has puesto), o si lo quieres usar tu mismo, prueba con DateAdd.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 05/06/2014, 10:50
 
Fecha de Ingreso: enero-2014
Ubicación: Guadalajara
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Consulta Restar horas GTM al exportar de sql a excel

Cita:
Iniciado por Malenko Ver Mensaje
Y te valdría que se sumara las 6 horas en el momento de lanzar al consulta para traer los datos al Excel? Si es así, podrías poner la consulta que usas (no está en el código que has puesto), o si lo quieres usar tu mismo, prueba con [URL="http://msdn.microsoft.com/es-es/library/ms186819.aspx"]DateAdd[/URL].
Gracias amigo mira tengo varias consultas, las cuales te dejo abajo, nunca he usado este DateAdd déjame le voy dando una leída. Si vez algunas funciones no conocidas es por la conexión especifica con la aplicación que te comento.

Código vb:
Ver original
  1. Public Sub Inicio_Consulta()
  2. ' Fecha inicial 1 dia menos y fecha final 1 dia mas para sacar todas las muestras del dia
  3.  ThisDisplay.datestart = VBA.Format(ThisDisplay.Finicial.Value, "yyyy/mm/dd") & " 00:00:00"
  4.   ThisDisplay.dateend = VBA.Format(ThisDisplay.Finicial.Value, "yyyy/mm/dd") & " 23:59:59"
  5.       Barras "Iniciando Busqueda...", 10
  6.      DoEvents
  7.       Objetos False
  8.       ThisDisplay.crearRep.Visible = False
  9.       ThisDisplay.Status1.ForeColor = vbBlack
  10. End Sub

Código vb:
Ver original
  1. Public Sub consultaSQL(ByVal cSQL As String)
  2.     'abrir la conexion
  3.  On Error GoTo Error_BaseDatos
  4.    DoEvents
  5.     Dim CnSQL As ADODB.Connection
  6.     Set CnSQL = New ADODB.Connection
  7.     Set Conexion = New ADODB.Connection
  8.     CnSQL.CommandTimeout = 10000
  9.     CnSQL.Open ThisDisplay.iSQLconex
  10.     Comando = cSQL
  11.          'Consulta
  12.    Set Consulta = New ADODB.Recordset
  13.    DoEvents
  14.     Consulta.Open Comando, CnSQL
  15. Exit Sub
  16. 'Errores Durante la Creacion del Reporte
  17. Error_BaseDatos:
  18.     MsgBox "Error con Base de Datos" & VBA.Chr(13) & _
  19.            "Error de Sistema: " & VBA.Chr(13) & VBA.Err.Description, VBA.vbCritical, "Error Conexion con Base de Datos"
  20. End Sub

Código vb:
Ver original
  1. Public Sub sacafechas(ByVal nhini As Date, ByVal nhfin As Date)
  2.  On Error Resume Next
  3. Dim intervalo As Integer
  4.  Dim n As Integer
  5.  Dim h, i, j As Date
  6.   n = 3
  7.   intervalo = 5
  8.  With ThisDisplay.General_Tags
  9.  '*-*-*-*-*-Crear Fechas para Busqueda y Tabla *-*-*-*-*
  10.      i = 0
  11. '      intervalo = Val(intervalo)
  12. '      intervalo = Abs(intervalo)
  13.      If intervalo = 0 Then intervalo = 1
  14.     StringFechas = "("
  15.   Do
  16.    .Cols = n + 1
  17.    h = VBA.Format(nhini + i, "DD/MM/YYYY HH:mm:ss")
  18.     If h > nhfin Then h = VBA.Format(nhfin, "DD/MM/YYYY HH:mm:ss")
  19.  '  .ColDisplayFormat(n) = "DD/MM/YYYY HH:mm:ss"
  20.   .TextMatrix(3, n) = VBA.Format(h, "DD/MM/YYYY")
  21.    .TextMatrix(4, n) = VBA.Format(h, "HH:mm:ss")
  22.      If .Cols > 4 Then StringFechas = StringFechas & "' OR "
  23.    j = DateAdd("n", 5, h)
  24.      StringFechas = StringFechas & " DateAndTime >  '" & VBA.Format(h, "yyyy/mm/dd hh:mm:ss") & "' And DateAndTime <  '" & VBA.Format(j, "yyyy/mm/dd hh:mm:ss")
  25.    i = DateAdd("n", intervalo, i)
  26.    n = n + 1
  27.   Loop While Not h = nhfin
  28.     StringFechas = StringFechas & "')"
  29.  End With
  30. End Sub

Última edición por jmerlos282; 05/06/2014 a las 10:52 Razón: Info Update

Etiquetas: excel, horas, restar, sql, vb, vb6
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:50.