Exportar a Excel QueryTables.Add Auxilio !

07/07/2004 - 23:16 por Jose Manuel Davila | Informe spam
que tal exporto a excel con esta rutina desde vb6


aqui envia la instruccion para que exporte
var_cnn = "ODBC;DRIVER=SQL Server;SERVER=" & parametros(0) &
";UID=sa;PWD=" & parametros(3) & ";DATABASE=" & parametros(1)

With oWorkBook.ActiveSheet.QueryTables.Add(Connection:=var_cnn, _
Destination:=oWorkBook.ActiveSheet.Cells(4, 1), SQL:=var_sql)
' Actualizamos los datos...
.Refresh
End With
si son bastantes datos todavia no acaba de exportar sin embargo el
sistema sigue su ejecucion en la sigueinte fila


oSheet.Range("D5").Select

'OEXCEL.ActiveWindow.FreezePanes = True
Screen.MousePointer = vbDefault
OEXCEL.DisplayAlerts = False
oWorkBook.SaveAs var_Nombre_Archivo
oWorkBook.Close 'SaveChanges:=True, Filename:=var_Nombre_Archivo
OEXCEL.Quit
Set oWorkBook = Nothing
Set oSheet = Nothing
Set OEXCEL = Nothing


si todavia no termina el archivo se guarda vacio

como podre controlar esto


gracias a todo ayuda ofrecida

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
08/07/2004 - 09:29 | Informe spam
Pienso que la solución podría ser situar el código que va después de la actualización de la tabla en el evento AfterRefresh del objeto QueryTable, pero para poder hacerlo es necesario crear un objeto QueryTable "con eventos", en un módulo de clase.

Yo tengo hecho un ejemplito que no hace lo que necesitas, pero que quizás te sirva de ejemplo: se trata de actualizar una consulta web situada en una hoja protegida. El código que va en el módulo de clase se encarga de desproteger la hoja en el momento en que se va a iniciar la actualización, y de protegerla de nuevo cuando la actualización termina. Te pongo el enlace:

http://www.excelsp.com/ejemplos/eje...table1.xls

Un saludo.


Fernando Arroyo
MS MVP - Excel


"Jose Manuel Davila" escribió en el mensaje news:
que tal exporto a excel con esta rutina desde vb6


aqui envia la instruccion para que exporte
var_cnn = "ODBC;DRIVER=SQL Server;SERVER=" & parametros(0) &
";UID=sa;PWD=" & parametros(3) & ";DATABASE=" & parametros(1)

With oWorkBook.ActiveSheet.QueryTables.Add(Connection:=var_cnn, _
Destination:=oWorkBook.ActiveSheet.Cells(4, 1), SQL:=var_sql)
' Actualizamos los datos...
.Refresh
End With
si son bastantes datos todavia no acaba de exportar sin embargo el
sistema sigue su ejecucion en la sigueinte fila


oSheet.Range("D5").Select

'OEXCEL.ActiveWindow.FreezePanes = True
Screen.MousePointer = vbDefault
OEXCEL.DisplayAlerts = False
oWorkBook.SaveAs var_Nombre_Archivo
oWorkBook.Close 'SaveChanges:=True, Filename:=var_Nombre_Archivo
OEXCEL.Quit
Set oWorkBook = Nothing
Set oSheet = Nothing
Set OEXCEL = Nothing


si todavia no termina el archivo se guarda vacio

como podre controlar esto


gracias a todo ayuda ofrecida


Respuesta Responder a este mensaje
#2 Jose Manuel Davila
09/07/2004 - 18:20 | Informe spam
ya me enviaron la solucion esta excelente, hay les paso la rutina solo la
interpretan

este metodo solo aplica con Excel 2000


Public Sub pro_envia_excel_sql(var_Nombre_Archivo As String,
VAR_NUMERO_CODIGOS As Long, var_sql As String, var_tabla As String)

Dim oExcel As Excel.Application
Dim oWorkBook As Excel.WorkBook
Dim oSheet As Excel.Worksheet, var_ini, var_fin

Set oExcel = New Excel.Application

oExcel.Visible = False
Screen.MousePointer = vbHourglass
If Dir(var_Nombre_Archivo) <> "" Then
Kill var_Nombre_Archivo
End If

Set oExcel = CreateObject("Excel.Application")
Set oWorkBook = oExcel.Workbooks.Add
Set oSheet = oWorkBook.Worksheets(1)

oExcel.Visible = True

var_ini = Time
'Exportar Datos a Excel
rs.Open "Select " & var_sql & " From " & var_tabla & " where
bint_pla_planta_id = " & var_numero_planta & " order by vcha_pro_producto_id
asc", cnn, adOpenStatic, adLockReadOnly

oSheet.Range("A5").CopyFromRecordset rs

'Salvar este libro de Excel

Screen.MousePointer = vbDefault
oExcel.DisplayAlerts = False
oWorkBook.SaveAs var_Nombre_Archivo
oWorkBook.Close 'SaveChanges:=True, Filename:=var_Nombre_Archivo
oExcel.Quit

var_fin = Time

MsgBox var_fin - var_ini

rs.Close
Set oWorkBook = Nothing
Set oSheet = Nothing
Set oExcel = Nothing

Exit Sub
HELL:
MsgBox ERR.Number & ERR.Description & " " & ERR.Source &
ERR.LastDllError

End Sub



Gracias para quien me envio la solucion

Saludos


"Jose Manuel Davila" escribió en el mensaje
news:
que tal exporto a excel con esta rutina desde vb6


aqui envia la instruccion para que exporte
var_cnn = "ODBC;DRIVER=SQL Server;SERVER=" & parametros(0) &
";UID=sa;PWD=" & parametros(3) & ";DATABASE=" & parametros(1)

With oWorkBook.ActiveSheet.QueryTables.Add(Connection:=var_cnn, _
Destination:=oWorkBook.ActiveSheet.Cells(4, 1), SQL:=var_sql)
' Actualizamos los datos...
.Refresh
End With
si son bastantes datos todavia no acaba de exportar sin embargo el
sistema sigue su ejecucion en la sigueinte fila


oSheet.Range("D5").Select

'OEXCEL.ActiveWindow.FreezePanes = True
Screen.MousePointer = vbDefault
OEXCEL.DisplayAlerts = False
oWorkBook.SaveAs var_Nombre_Archivo
oWorkBook.Close 'SaveChanges:=True, Filename:=var_Nombre_Archivo
OEXCEL.Quit
Set oWorkBook = Nothing
Set oSheet = Nothing
Set OEXCEL = Nothing


si todavia no termina el archivo se guarda vacio

como podre controlar esto


gracias a todo ayuda ofrecida


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida