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

Crear Documento en Excel desde VB6.0

Estas en el tema de Crear Documento en Excel desde VB6.0 en el foro de Visual Basic clásico en Foros del Web. Saludos compañeros... Alguien tiene idea de como crear un documento en excel, desde vb6.0, la informacion la tengo en una tabla de sql server, ya ...
  #1 (permalink)  
Antiguo 07/04/2008, 11:31
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 0
Crear Documento en Excel desde VB6.0

Saludos compañeros...
Alguien tiene idea de como crear un documento en excel, desde vb6.0, la informacion la tengo en una tabla de sql server, ya tengo la conexion y todo lo necesario para obtener los datos, solo que no se como crear el documento.

Debe de que da mas o menos asi:

CLIENTE NOMBRE NUM.FACTURA .......
0000001 Abelardo 15256 .....
0000125 Carnes CSC 00125......

Por su ayuda muchas gracias.
  #2 (permalink)  
Antiguo 07/04/2008, 11:45
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Crear Documento en Excel desde VB6.0

Si ya tienes abierta a conexión a la BD (suponemos que se llama "cn")

Código:
 Dim ExcelFile As String
    Dim HojaExcel As String
    ExcelFile = App.Path & "\Libro1.xls"
    HojaExcel = "[Hoja1]"
    cn.Execute "SELECT * INTO [Excel 8.0;DATABASE=" & ExcelFile & "]." & _
        HojaExcel & " FROM LaTablaSql"
Hay muchos métodos para exportar datos a Excel: Abrir un recordset y copiar campo a campo, usar el método CopyFromRecordset, etc. etc.. pero de todos los que he probado, éste es el más sencillo y más rápido.
  #3 (permalink)  
Antiguo 07/04/2008, 16:37
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Crear Documento en Excel desde VB6.0

Muchas gracias Avellaneda por tu gran Interes , pero necesito hacerte otra pregunta, ya que has utilizado este procedimiento.

Lo que pasa es que me marca el siguiente error:
Specified owner name 'Excel 6.5;DATABASE=C:\Juan Carlos\VSSafe\ProgramasMacola\RelacionFacturas.xls ' either does not exist or you do not have permission to use it.

Mi codigo es :

Dim ExcelFile As String
Dim HojaExcel As String
Dim Sql As String
Dim Dr As New ADODB.Recordset

On Error GoTo Errores
ExcelFile = App.Path & "\RelacionFacturas.xls"
HojaExcel = "[Hoja1]"

Sql = "Select * Into [Excel 8.0;DATABASE=" & ExcelFile & "]." & HojaExcel & " FROM _TempRelFact"
goConn.Execute (Sql)


Ya probe con Excel 6.0 y 6.5
RelacionFacturas.xls, ya esta creado pero sin datos
  #4 (permalink)  
Antiguo 08/04/2008, 02:23
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Crear Documento en Excel desde VB6.0

'RelacionFacturas.xls', está en el mismo directorio de la aplicación?
_TempRelFact, es nombre de la tabla?

de todas formas prueba poniendo el signo de dólar ($) después del nombre de la hoja.

HojaExcel = [Hoja1$]

Última edición por Avellaneda; 08/04/2008 a las 03:29
  #5 (permalink)  
Antiguo 08/04/2008, 10:03
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Crear Documento en Excel desde VB6.0

El archivo esta en el mismo directorio de la aplicacion y ese es el nombre de la tabla en la base de datos, ya probe con el $ despues del nombre de la hoja, pero sigue marcando el mismo error.
Si tienes una idea de porque no salen las cosas como dices, te agradecere mucho tu ayuda, mientras tanto seguire intentando y buscando otros metodos
  #6 (permalink)  
Antiguo 08/04/2008, 13:47
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Crear Documento en Excel desde VB6.0

Bueno, no sé porque puede ser. Prueba con esta función, como parámetro le pasas el recordset:

Código:
Function ExportExcel(ByVal rs As ADODB.Recordset)
Dim oExcel As Excel.Application
Dim oWBook As Excel.Workbook
Dim oSheet As Excel.Worksheet
Dim iFila As Long, iCol As Integer, i As Integer

Set oExcel = New Excel.Application
Set oWBook = oExcel.Workbooks.Add
Set oSheet = oWBook.Worksheets(1)
Screen.MousePointer = vbHourglass
iFila = 1
iCol = 1
rs.MoveFirst
For i = 0 To rs.Fields.Count - 1
    ' pone el nombre de los campos en la primera fila
    oSheet.Cells(iFila, i + 1) = rs.Fields(i).Name
Next
iFila = iFila + 1
With oSheet
    ' carga los registros del recordset
    .Cells(iFila, iCol).CopyFromRecordset rs
    .Columns.AutoFit  ' ajusta el ancho de las columnas
End With
oExcel.Visible = True
Set oExcel = Nothing
Screen.MousePointer = vbDefault
End Function
Al cerrar, te preguntará si quieres guardar los cambios, le dices que sí y lo guardas con el nombre que quieras.

Espero que esta vez te funcione!
  #7 (permalink)  
Antiguo 09/04/2008, 16:22
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Crear Documento en Excel desde VB6.0

Hola,¿vos queres exportar un recordset a excel? si es asi,aca tenes una manada de codigos de la libreria de excel desde visual basic,entre ellas uno para exportar un recordset ADO a excel:

Microsoft Excel Object Library

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #8 (permalink)  
Antiguo 18/02/2011, 10:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Re: Crear Documento en Excel desde VB6.0

Cita:
Iniciado por seba123neo Ver Mensaje
Hola,¿vos queres exportar un recordset a excel? si es asi,aca tenes una manada de codigos de la libreria de excel desde visual basic,entre ellas uno para exportar un recordset ADO a excel:

[URL="http://www.recursosvisualbasic.com.ar/htm/tutoriales/excel.htm"]Microsoft Excel Object Library[/URL]

saludos.
No se si te sirve. para elegir en que hoja asignar.

Set Excel = CreateObject("Excel.Application")
Set Libro = Excel.Workbooks.Add

' -- Hacer referencia a la hoja
With Libro
.Sheets.Add ' agrega con Add una nueva hoja en el libro
.ActiveSheet.Select ' La selecciona
.ActiveSheet.Name = dbfile
End With
Set Hoja = Libro.Worksheets(dbfile)

Saludos
  #9 (permalink)  
Antiguo 19/02/2011, 16:37
 
Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Crear Documento en Excel desde VB6.0

alguien k me ayude con este codigo
Dim b As Integer
Dim quedan As Integer
Dim a As Integer
Dim compra As Variant
Dim ganancia As Currency
Dim i As Integer
Dim venta As Integer
Dim precioRevista As Currency
precioRevista = 20

For i = 2 To 31

Cells(i, 3).Value = Rnd

If Cells(i, 3).Value <= 0.5 Then
Cells(i, 4).Value = 3
venta = 3
quedan = existentes - venta
Cells(2, 5).Value = quedan



If quedan >= 0 Then
compra = "No"
Cells(2, 6).Value = compra
Else
compra = "yes"
Cells(2, 6).Value = compra


End If

Else
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 10:29.