Visual Basic - Error de Automatización Nro -2147417848

Life is soft - evento anual de software empresarial
 
Vista:

Error de Automatización Nro -2147417848

Publicado por Gochor (2 intervenciones) el 02/06/2005 14:54:51
Estimados Amigos del Foro, les comento que tengo un pequeño gran problema para exportar datos desde un recordset (Access) a Excel. Cuando realizo la operación en la PC en la cual desarrollo la aplicación no tengo ningún problema (simpre y cuando esta tenga Win XP instalado, en una PC con Win 98, aunque tenga instalado el Visual Basic tengo el problema que les paso contar). Cuando compilo el programa y lo instaldo en otra PC con cualquier sistema operativo, al querer exportar el recordset a Excel, me aparece un error que capturé y es el siguiente:

Error de Automatizacion "Nombre de mi aplicacion" -2147417848

y no hace nada, la aplicación no se detiene pero no realiza la exportación de los datos.

A continuación les envio un trozo de código que utilizo para realizar la operación de exportacióna Excel:

Public Function Exportar(Columnas As Integer)

Dim colums As Integer
Dim I As Integer
Dim P As Integer
Dim OK As Integer
P = 0
OK = 0
On Error GoTo errormin

FrmGrafos.ComDialog1.Filter = "Excel File(*.xls)|*.xls"
FrmGrafos.ComDialog1.ShowSave

Dim ExcelwkbNew As Excel.Workbook
Dim ExcelwkSheet As Excel.Worksheet

Dim col As Integer
Dim row As Integer

FrmGrafos.Data1.Refresh
FrmGrafos.Data1.Recordset.MoveLast
FrmGrafos.DBGrid1.Columns(0).Width = 2000
FrmGrafos.DBGrid1.AllowRowSizing = False
FrmGrafos.Data2.Recordset.MoveFirst

For I = 0 To EstaVersion.NumCanales - 1
If FrmGrafos.Check1(I).Value Then
FrmGrafos.DBGrid1.Columns(P + 1).Caption = FrmGrafos.Data2.Recordset.Fields(1).Value
P = P + 1
End If
FrmGrafos.Data2.Recordset.MoveNext
Next

Set ExcelwkbNew = Workbooks.Add
(36) Set ExcelwkSheet = ExcelwkbNew.Worksheets(1)

(38) ExcelwkSheet.Columns("A").ColumnWidth = 17.29

'Inicio Codigo Agregado por Jm
ExcelwkSheet.Columns("A:DA").Select
:
: Continua.....

El código se ejecuta sin errores hasta la línea (36), cuando se ejecuta la línea (38), aparece el error que antes les mencioné y todavía no encontré forma de arreglar esto. Me metí en la página de Microsoft pero las ayudan que dan exceden mis conocimientos actuales de programación en VB6.

Por favor el que me pueda dar una mano ya que este problema me esta causando un gran dolor de cabeza.

Saludos. Gochor

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:Error de Automatización Nro -2147417848

Publicado por SetFocus (183 intervenciones) el 02/06/2005 16:14:11
Hola! De verdad no revise tu codigo, pero para pasar un recordset ADO o DAO a un hoja de exel podes usar esto que a mi me ahorro muchas lineas de codigo. Te cuento Excel 2000 incorpora el metodo CopyFromRecordset que lo que hace es pasarte el recordaset a la hoja... facil,no? =)
En el ejemplo tomo los datos de una base de datos Access 2000 "Prueba" los guado en el recordset "rsDatos" para luego pasarlo a la planilla. Esto abre excel, crea una nueva hoja y vuelca el contenido del recordset y para terminar lo graba. Listo. Espero te sirva. Saludos

Dim mvarConexion As ADODB.Connection
Dim rsDatos As ADODB.Recordset
Dim xlAplicacion As Excel.Application
Dim xlLibro As Excel.Workbook
Dim xlHoja As Excel.Worksheet

' Abre l conexion
Set mvarConexion = New ADODB.Connection
With mvarConexion
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\Prueba.mdb"
.CursorLocation = adUseClient
.Open
End With
' Leer los datos
Set rsDatos = New ADODB.Recordset
rsDatos.Open "SELECT * FROM Productos", mvarConexion, adOpenDynamic, adLockOptimistic

' Crear objeto de aplicacion Excel
Set xlAplicacion = CreateObject("Excel.Application")

xlAplicacion.Visible = True 'si no queres que se ve excel ponelo en False

' Crea el Objeto Libro
Set xlLibro = xlAplicacion.Workbooks.Add

' Hace referencia a la Hoja 1 del Libro
Set xlHoja = xlLibro.Worksheets(1)

xlHoja.Range("A1").CopyFromRecordset rsDatos

xlHoja.SaveAs App.Path & "\Pasaje de Datos.xls"


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