Visual Basic - Exportar tabla excel desde vb6

Life is soft - evento anual de software empresarial
 
Vista:

Exportar tabla excel desde vb6

Publicado por Victor (1 intervención) el 08/08/2007 08:53:27
Wenas he de exportar a una tabla de Excel una tabla desde VISUAL BASIC 6 y me da un error de "ERROR DE EJECUCION EL SUBINDICE ESTA FUERA DEL INTERVALO" a ver si alguien me podria decir como se soluciona.

Gracias

Private Sub SSCommand2_Click()

Dim iRowIndex As Integer, avRows As Variant
Dim iFieldCount As Integer, objExcel As Object, objTemp As Object
Dim iColIndex As Integer, iRecordCount As Integer

'elegir ruta al archivo Access
DataExcel.DatabaseName = "C:\Projectes\Seguridad\SinTdb60\talleres.mdb"
'consulta SQL
DataExcel.RecordSource = "SELECT codigo,nombre,domicilio,poblacion,provincia,telefono,email FROM tcliente"
'Actualizar
DataExcel.Refresh

With DataExcel.Recordset
.MoveFirst
avRows = .GetRows()
iRecordCount = UBound(avRows, 2) + 1
iFieldCount = UBound(avRows, 1) + 1
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add
Set objTemp = objExcel
objExcel.Visible = True

If Val(objExcel.Application.Version) >= 8 Then
Set objExcel = objExcel.ActiveSheet
End If

iRowIndex = 1
For iColIndex = 1 To iFieldCount
With objExcel.Cells(iRowIndex, iColIndex)
.Value = DataExcel.Recordset.Fields(iColIndex - 1).Name
.Range(.Cells(1, 1), .Cells(1, 5)).ColumnWidth = 20
With .Font
.Name = "Verdana"
.Bold = True
.size = 11

End With
End With
Next iColIndex

End With

With objExcel
For iRowIndex = 2 To DataExcel.Recordset.RecordCount + 1
For iColIndex = 1 To iFieldCount
'EN LA LINEA DE ABAJO ES DONDE ME DA EL ERROR
.Cells(iRowIndex, iColIndex) = avRows(iColIndex - 1, iRowIndex - 2)
Next iColIndex
Next iRowIndex
.Cells(1, 1).CurrentRegion.EntireColumn.AutoFit
End With

Set objTemp = Nothing
Set objExcel = Nothing
End Sub
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 tabla excel desde vb6

Publicado por barca1010 (132 intervenciones) el 08/08/2007 09:04:48
Yo lo hago de una forma distinta no se si te sirva

DIM xlsLibro As Excel.Workbook
DIM xlsExcel As Excel.Application

Set xlsExcel = New Excel.Application
Set xlsLibro = xlsExcel.Workbooks.Open(Ruta de la hoja de excel)

' / En este caso hacemos lel select de la BBDD en este espacio
Dim Obj_Conexion As ADODB.Connection
Dim Obj_Recordset As ADODB.Recordset

Set Obj_Conexion = New ADODB.Connection
Set Obj_Recordset = New ADODB.Recordset
With Obj_Conexion
.ConnectionString = strConexion
.Open
End With
Set Obj_Recordset.ActiveConnection = Obj_Conexion
Obj_Recordset.CursorType = adOpenStatic
Obj_Recordset.LockType = adLockOptimistic

With Recordset
.Open (Sentencia SQL)
End With

xlsLibro.Sheets.Item(indice de la pestaña que vas a rellenar).Cells(Fila,Columna).Value = Obj_Recordset(Campo de la BBDD)

Set Obj_Conexion= Nothing
Set Obj_Recordset = Nothing
Set xlsExcel = Nothing
Set xlsLibro = Nothing

' lo unico adicional que te tengo que aclarar es que este codigo lo utilizo con una plantila prediseñada de Excel.

espero que te sirva de algo
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 tabla excel desde vb6

Publicado por Nelson (2 intervenciones) el 09/08/2007 15:49:35
El codigo parece estar bien, sin embargo el error que mencionas parece ser debido a que se está superando el rango de alguna variable.
Algo que suele suceder especialmente si trabajas con bases de datos en excel, es que la cantidad de registros puede estar superando el rango máximo de tu variable iRowIndex que está definida como integer, por que no pruebas cambiando tu variable a tipo Long.
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