Visual Basic - Exportar de SQL a EXCEL

Life is soft - evento anual de software empresarial
 
Vista:

Exportar de SQL a EXCEL

Publicado por Jorge (14 intervenciones) el 18/02/2003 16:28:54
Hola Amigos:

Necesito exportar a EXCEL desde Visual Basic, trabajo con SQL y ACCES

Gracias

Jorge
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Exportar de SQL a EXCEL (1)

Publicado por Rodolfo del Peru (454 intervenciones) el 18/02/2003 18:06:59
La respuesta es algo extensa, la pondre en partes: (Recuerda que debes crear un recordset de la tabla a exportar, sea SQL Server, Access o la que fuere.

Primero agrega la referencia a "Microsoft Excel 9.0 Object Library" que corresponde al archivo "c:\Archivos de Programa\Microsoft Office\Office\EXCEL9.OLB".

Luego a nivel modulo, declaras lo siguiente:
Public objExcel As Excel.Application
Public oWs As Excel.Worksheet
Public oWb As Excel.Workbook
Public sNewXlsFile As String

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar de SQL a EXCEL (2)

Publicado por Rodolfo del Peru (454 intervenciones) el 18/02/2003 18:08:16
Tambien define estas rutinas en el modulo
Sub Inicia_Excel(ByVal wFileName As String, ByVal wNombreXLS As String)
Dim sXlsTemplate As String
Dim Msg, Estilo, Título

If Right(App.Path, 1) = "\" Then
sXlsTemplate = App.Path & wNombreXLS & ".xls"
sNewXlsFile = App.Path & wFileName & ".xls"
Else
sXlsTemplate = App.Path & "\" & wNombreXLS & ".xls"
sNewXlsFile = App.Path & "\" & wFileName & ".xls"
End If

If Dir(sNewXlsFile) <> "" Then 'Borra archivo Excel anterior
On Error Resume Next
Kill sNewXlsFile
End If

Set objExcel = CreateObject("EXCEL.APPLICATION")
objExcel.Visible = False
objExcel.Workbooks.Open FileName:=sXlsTemplate, ReadOnly:=True, ignoreReadOnlyRecommended:=True
Set oWs = objExcel.ActiveSheet
Set oWb = objExcel.ActiveWorkbook
oWs.SaveAs FileName:=sNewXlsFile, FileFormat:=xlNormal
End Sub

Sub Formatea_ExcelX(ByVal Titulo As String, Cabeceras() As String, Detalle() As String, Filas As Integer, Columnas As Integer)
Dim Msg, Estilo, Título
Dim I As Long, J As Long, K As Long

I = 6 'Empezar en fila 6
' Carga Data al Excel
J=0
While Not rs.EOF
J = J + 1
For K = 1 To Columnas
oWs.Cells(I + J, K + 1) = rs.Fields(K)
Next
rs.MoveNext
Loop
End Sub

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Exportar de SQL a EXCEL (3)

Publicado por Rodolfo del Peru (454 intervenciones) el 18/02/2003 18:08:48
Sub Show_Excel(ByVal wForm As Form, ByVal lOperacion As String, ByVal lShow As String)
Dim lresult As Long

oWb.Save
oWb.Saved = True

objExcel.Quit
Set oWb = Nothing
Set oWs = Nothing
Set objExcel = Nothing

If lShow = "Si" Then
lresult = ShellExecute(wForm.hWnd, lOperacion, sNewXlsFile & vbNullChar, "", 0, SW_SHOWNORMAL)
Call pDisplayError(lresult)
End If
End Sub

Finalmente, pones esta logica en el boton que exporta.

Dim rpta As Byte
Dim Msg As String

rpta = MsgBox("Desea ver el Informe en el Excel?", vbExclamation + vbYesNoCancel, Me.Caption)
Select Case rpta
Case Is = vbYes: Msg = "Si"
Case Is = vbNo: Msg = "No"
Case Is = vbCancel: Exit Sub
End Select

Carga_Excel
Show_Excel Me, "Open", Msg

y agregas la ultima rutina en local

Sub Carga_Excel()
Dim J As Integer, K As Integer
Dim Titulo As String
Dim TitExcel As String

TColumnas = 14

Call Inicia_Excel(Titulo, "Conciliacion")
'Esta hoja "Conciliacion" es plantilla, es decir una hoja formateada sin data.
End Sub

Saludos desde Lima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar