Exprtar a Excel

Viejo que pena que abuse de su confianza, lo que sucede es que estoy apenas aprendiendo visual...
Tengo en un formulario un botón "llamado exportar" y dos textbox (fec_ini y fec_fin), deseo que dependiendo a ese rango de fecha me lleve a excel los registros que aparezcan en la BD cuando oprima el botón exportar.
Osea:
Fec_ini: 18/09/2008  "Desde las 07:00 am"
Fec_fin : 19/09/2008 "Hasta las 06:59 am"
Es decir un turno de 24 horas.
Continuando, deseo que cuando oprima el botón EXPORTAR, me lleve a excel los registros que aparezcan en la BD según esas fechas.
¿Fui claro?

1 Respuesta

Respuesta
Primero que nada Un gusto conocerte, no se porque dices que abusas de la confianza pero no te hagas drama... estamos para ayudar...
Los datos para exportarlos de Visual hacia Excel, lo haces de la siguiente manera, primero que nada, coloca un CommonDialog, un CommandButton, un MSHFlexGrid.
Bien luego agrega un modulo y coloca este código:
Public Sub ExportarGrid(Grid As MSHFlexGrid, FileName As String, FileType)
Dim i As Long
Dim Fs As Variant
Dim a As Variant
Dim Line As String
Dim j As Long
Dim wkbNew As Excel.Workbook
Dim wkbSheet As Excel.Worksheet
Dim Rng As Excel.Range
On Error GoTo ErrHandler
Screen.MousePointer = vbHourglass
If FileType = 1 Then
   If Dir(FileName) <> "" Then
      Kill FileName
   End If
   On Error GoTo CreateNew_Err
   Set wkbNew = Workbooks.Add
   wkbNew.SaveAs FileName
   Set wkbSheet = wkbNew.Worksheets(1)
   Set Rng = wkbSheet.Range("A1:" + Chr(Grid.Cols + 64) + CStr(Grid.Rows))
   For j = 0 To Grid.Cols - 1
       For i = 0 To Grid.Rows - 1
           Rng.Range(Chr(j + 1 + 64) + CStr(i + 1)) = Grid.TextMatrix(i, j)
       Next i
   Next j
   wkbNew.Close True
   GoTo NoErrors
CreateNew_Err:
   wkbNew.Close False
   Set wkbNew = Nothing
   Resume ErrHandler
Else
   On Error GoTo ErrHandler
   Set Fs = CreateObject("Scripting.FileSystemObject")
   Set a = Fs.CreateTextFile(FileName, True)
   For j = 0 To Grid.Rows - 1
       For i = 0 To Grid.Cols - 1
           Line = Line + Grid.TextMatrix(i, j) + vbTab
       Next i
   a.WriteLine (Line)
   Line = ""
   Next j
   a.Close
End If
NoErrors:
   Screen.MousePointer = vbDefault
   MsgBox "Exportado Correctamente!", vbOKOnly + vbInformation, "Atención!"
   Exit Sub
ErrHandler:
   Screen.MousePointer = vbDefault
   MsgBox "No se pudo exportar Datos, asegurese de tener cerrada la hoja de calculo" & vbCrLf & "A la cual va a exportarlos..", vbOKOnly + vbCritical, "Atención: Error!"
End Sub

Luego, en el formulario, en el boton de commando para exportar coloca este codigo:
Private Sub Exportar_Click()' acá selecciona la hoja de Excel
On Error GoTo Salir
    CommonDialog1.Filter = "Excel File(*.xls)|*.xls|Text File (*.txt)|*.txt"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.ShowSave
    ExportarGrid MSHFlexGrid1, CommonDialog1.FileName, CD.FilterIndex
Salir:
End Sub

Para realizar una prueba de los datos a exportar, en otro botón (este presiónalo antes de exportar los datos) es para rellenar unas celdas del MSHFlexGrid y así probar la función y verificar en la hoja de Excel que los datos han sido Exportados:
Lo que hará será genera números aleatorios y agregarlos al Grid, es de prueba como dije..

Private Sub cmdRellenar_Click()
Dim i As Integer
Dim j As Integer
MSHFlexGrid1.Rows = CInt((38 * Rnd) + 1) 
MSHFlexGrid1.Cols = CInt((2 * Rnd) + 1)
For i = 0 To MSHFlexGrid1.Cols - 1
      For j = 0 To MSHFlexGrid1.Rows - 1
           MSHFlexGrid1.TextMatrix(j, i) = CStr((100 * Rnd) + 1)
      Next j
Next i
End Sub

Luego de rellenarlo presionas el botón para exportar y verificas que los datos se hayan exportado, bien, mi duda es si sabes trabajar con consultas Sql, tal vez lo sepas, pero NO sepas trabajar con Visual y relacionando Access a través de esas consultas, por eso te pregunto, si alguna duda tienes, consúltame nuevamente,
Saludos,
Hice tal cual como me dices, es más copie y pegue pero a ppenas mando a correr me sale un error en la primera linea del modulo diciendo:
user-defined type not defined.
No se si este ejemplo sea mucho para mi que estoy empzando, ¿pero tengo una duda donde están los campos que se van a exportar a excel?
No manejo sql, trabajo con datacontrol, una bd de access.
Espero tus comentarios.
En que parte te marca el error, debe ser algún componente que no tienes, el tema que un ejemplo tan simple para ti y que funcione no lo hay, al menos yo no tengo conocimiento de un código sencillo y que de el mismo resultado.
Estoy seguro que algún componente te está faltando, indicame en que línea te da error o bien, que es lo que te marca en amarillo cuando lo depuras.
Saludos.
PD disculpa por la tardanza.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas