Visual Basic - HRESULT: 0x800A03EC5

Life is soft - evento anual de software empresarial
 
Vista:

HRESULT: 0x800A03EC5

Publicado por daniel17_cr (6 intervenciones) el 12/05/2011 17:47:35
Buenos días.
alguien sabe a que se debe este error
Excepción de HRESULT: 0x800A03EC5
estoy realizando un proyecto donde me exporta de un datatable a un excel.
resulta que son dos archivos, donde el primer archivo lo exporta de una forma efectiva pero al tratar de ejecutar el segundo archivo me da ese error.
Aguien sabe a que se debe.
Ayuda por favorrrrr.....
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 25 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

HRESULT: 0x800A03EC5

Publicado por Paolo Santos (76 intervenciones) el 12/05/2011 18:27:37
Creo que no nos da mucha información colocando solo el codigo del error, ya que recordemos que muchos de los codigos de errores dado por el compilador, se refieren muchas veces a un conjunto de errores diversos pero parecidos, asi que te aconsejo nos postees el codigo para ver si algo esta mal declarado para poderte ayudar, posiblemente por lo que nos indicas hay un error en la declaracion o en la apertura del archivo excel o estas insertando los datos en el archivo excel de una manera incorrecta, eso es lo mas que te podria decir ya que no conozco el codigo, saludos y esperamos tu respuesta...
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

HRESULT: 0x800A03EC5

Publicado por daniel17_cr (6 intervenciones) el 12/05/2011 18:30:31
Claro, lo que pasa es que en otros equipos donde corro el programa no me presenta ningun error.

pero adjunto code


lic Sub generador(ByVal vw As String, ByVal archivos As String, ByVal pathfile As String)
Dim fecha As Date = Today.Date
Dim exapp As New Microsoft.Office.Interop.Excel.Application
Dim exlibro As Microsoft.Office.Interop.Excel.Workbook
Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet
Dim f1 As String
Dim dr As DataRow, ary() As Object
f1 = fecha.ToString("ddMMyyyy")
cnn = New SqlConnection(config.ConnectionString)
cnn.Open()
'Dim sql As String = "select [Cg_Emp_Codigo_Empresa],[Ps_Ccl_Clasificacion],[Ps_Cvc_Valor_Clasificacion],[Ps_Cvc_Descripcion],[Ps_Cvc_Account_Prod_Code],[Cb_Cct_Codigo_Cuenta],[Ps_Cvc_Porc_Impuesto],[Ps_Cvc_MarkUP],[Ps_Cvc_Precios_Modificables],[Ps_Cvc_Afecta_Af],[Ps_Cvc_Incluido_Garantia],[Ps_Cvc_ExcepcionVenta],[Ps_Cpp_Warning_DiasFinS] from [XLAR].[dbo].[Ps_Cat_Valor_Clasificacion]"
Dim sql As String = "select * From " & vw & ""
Me.Cursor = Cursors.WaitCursor
cmd = New SqlCommand(sql, cnn)
Dim da As SqlDataAdapter = New SqlDataAdapter(sql, cnn)
'Dim ds As New DataSet
Dim dt As New DataTable("TABLA")
da.Fill(dt)
'da.Fill(ds)
GC.Collect()
Try
If My.Computer.FileSystem.FileExists(archivos) Then
My.Computer.FileSystem.DeleteFile(archivos)

End If
Me.Cursor = Cursors.WaitCursor
Dim oldCI As System.Globalization.CultureInfo = _
System.Threading.Thread.CurrentThread.CurrentCulture
System.Threading.Thread.CurrentThread.CurrentCulture = _
New System.Globalization.CultureInfo("en-US")

'se añade el libro al programa, y la hoja al libro
Dim ncol As Integer = dt.Columns.Count 'ColumnCount
Dim nrow As Integer = dt.Rows.Count
Dim intI As Integer = 1
'Dim dc As DataColumn
Dim array(nrow, ncol) As Object
If archivoBase = "si" Or archivoBase = "Si" Or archivoBase = "SI" Or archivoBase = "yes" Or archivoBase = "Yes" Or archivoBase = "YES" Then
exlibro = exapp.Workbooks.Open(pathfile)
exHoja = exlibro.Worksheets(1)
ElseIf archivoBase = "no" Or archivoBase = "No" Or archivoBase = "NO" Then
exlibro = exapp.Workbooks.Add
exHoja = exlibro.Worksheets(1)
For col = 0 To dt.Columns.Count - 1
exHoja.Cells(1, intI).value = dt.Columns(col).ColumnName
exHoja.Cells(1, intI).EntireRow.Font.Bold = True
intI += 1
Next
End If

'Cuantas columnas y filas

' Se recoge todas la filas, y por cada fila todas las columnas y se va escribiendo.

'Exportar por rango + eficiente

For fila As Integer = 0 To nrow - 1
For col As Integer = 0 To ncol - 1
dr = dt.Rows.Item(fila)
ary = dr.ItemArray
array(fila, col) = ary(col).ToString
Next
Next
exHoja.Range("A2").Resize(nrow, ncol).Value = array

'exporta por celda - eficiente para muchos registros.
'For fila As Integer = 0 To nrow - 1
' For col As Integer = 0 To ncol - 1
' dr = dt.Rows.Item(fila)
' ary = dr.ItemArray
'exHoja.Cells.Item(fila + 2, col + 1) = ElGrid.Rows(fila).Cells(col).Value

'exHoja.Cells.Item(fila + 2, col + 1) = ary(col).ToString

'ProgressBar1.Value = fila
' Next
'Next

exapp.Application.Visible = True
'exapp.ActiveWindow.Visible = False
exHoja = exlibro.Worksheets(2)
exapp.ActiveWorkbook.RefreshAll()
'exHoja = exlibro.Worksheets(1)
'exapp.ActiveWorkbook.RejectAllChanges(exHoja)
exapp.ActiveWorkbook.SaveAs(archivos)
exapp.Workbooks(filename).Close()
exapp.Quit()
exHoja = Nothing
exlibro = Nothing
exapp = Nothing
System.Threading.Thread.CurrentThread.CurrentCulture = oldCI
Dim pro() As Process = System.Diagnostics.Process.GetProcessesByName("EXCEL")
For Each i As Process In pro
i.Kill()
Next
'comprime(ZIPDOC & DateTime.Now.ToString("yyMMdd") & ".zip")
Me.Cursor = Cursors.Default

Catch ex As Exception
Dim msg As String = "Error(on Sub GENERADOR): " & ex.Message.ToString & Now
sendmailFijo(msg)
MsgBox(ex.Message, MsgBoxStyle.Critical, " Failed export to Excel")
Dim pro() As Process = System.Diagnostics.Process.GetProcessesByName("EXCEL")
For Each i As Process In pro
i.Kill()
Next
Me.Cursor = Cursors.Default

Return
End Try
'Return
End Sub



Saludos
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 25 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

HRESULT: 0x800A03EC5

Publicado por Paolo Santos (76 intervenciones) el 12/05/2011 18:36:54
ummmm me llamo la atención el hecho de que en otros equipos no te da ninugn error, entonces el problema por lo que entiendo es en un equipo asi que pregunto: que tiene de diferente este equipo que no tengan las demas?, es decir se me ocurre por ejemplo que los otros tienen office 2003 y donde te da el error tiene office 2007, puedes dar un poco mas de detalle, mientras analizo el codigo, pero por lo descrito anteriormente puede que no sea el codigo el problema...
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

HRESULT: 0x800A03EC5

Publicado por daniel17_cr (6 intervenciones) el 12/05/2011 18:45:54
la aplicacion por la lireria esta para correr en office 2007 por la libreria,
en la maquina que me da el error no tiene nada de diferente, tiene office 2007 el windows esta en spanish, osea no encuentro logica para que me de ese error, aparte de esto como te digo el programa corre, ejecuta el primer archivo de office lo abre y lo guarda y lo cierra, cuando trata de abrir el segundo archivo es donde da el error.
Me quiebro la cabeza para ver que puede ser, el problema es que en ningun otro equipo me da el error, mmm nose que podra ser.
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 25 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

HRESULT: 0x800A03EC5

Publicado por Paolo Santos (76 intervenciones) el 12/05/2011 19:02:55
El archivo excel que estas abriendo y modificando esta en un servidor o local en cada maquina, no veo que trae la variable PathLibro?
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

HRESULT: 0x800A03EC5

Publicado por daniel17_cr (6 intervenciones) el 12/05/2011 19:05:18
No, este lo abre de la carpeta raiz donde se instala la aplicacion yo lo abro con la variable pathfile que nombro en el sub.
Esta un poco rudo cierto?
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 25 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

HRESULT: 0x800A03EC5

Publicado por Paolo Santos (76 intervenciones) el 12/05/2011 19:22:43
si, realmente, te hago estas preguntas porque alguna vez me paso algo muy similar, solo que a ti al menos te tiro un mensaje de error, a mi simplemente cuando le daba grabar me cerraba el libro sin guardarlo, y muy parecidos sintomas, en unas maquinas lo hacia bien y de repente en alguna daba este problema, asi que evaluando mi codigo tuve que hacer cambios en los objetos que utilizaba para abrir el excel, hasta que solucione el problema, antes de decirte esto te pregunte donde abrias el archivo puesto que si era en un servidor puede estuviere afectando aspectos de licencias de usuarios o simplemente que uno tomara como propietario el archivo y la otra maquina lo tenia que abrir como solo lectura y por ende el error, pero no es eso asi que mejor te comento como lo solucione para ver si derepente de alumbro el bombillo y logres solucionar tu problema.

yo declaro una sola variable a usar para el excel de esta forma:

Dim objArchivoXls As Object

luego creo el objeto y lo declaro que lo voy a usar para excel:

Set objArchivoXls = CreateObject("Excel.Application")

luego abro el libro, por cierto strRuta tengo una rutina para ver si existe el libro abre el existente y guardo la ruta en strRuta o de lo contrario le envio la ruta con el nombre del nuevo archivo:

objArchivoXls.Workbooks.Open Trim$(strRuta + strNomArch)

para manipular la hoja activa y guardad datos en las celdas:

objArchivoXls.ActiveSheet.Range("B8") =""

por si hay que Mostrar excel:

objArchivoXls.Parent.Visible = True

para mostrar la ventana por si esta oculta:

objArchivoXls.ActiveSheet.Parent.Windows(strNomArch).Visible = True

para cerrar Excel desde codigo:

objArchivoXls.Workbooks(1).Close (False)

y limpiar variable:

Set objArchivoXls = Nothing

bueno con esto tan simple podrias decir, pero fue asi como solucione mi problema y mi codigo anda al 100%, ya no tuve que declarar mas variables para manipular libros ni hojas y cero problemas, espero te sirva de algo mi sugerencia, ya que segun yo por manejar tanta variable de libros y hojas es que algo se queda colgado, aunque veo que tratas de cerrar todos los procesos de excel, colgados en el sistema, pero igual me paso al ver los procesos ya no tenia mimgun proceso de escel pero de igual forma me daba problemas hasta que lo hice como te lo postee anteriormente.... Saludos...
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

HRESULT: 0x800A03EC5

Publicado por daniel17_cr (6 intervenciones) el 12/05/2011 23:01:35
Gracias Paolo.
Hare la prueba...
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