• Viernes 8 de Noviembre de 2024, 11:28

Autor Tema:  Cerrar Instancia de Excel.Application  (Leído 12334 veces)

jpardo84

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Cerrar Instancia de Excel.Application
« en: Martes 5 de Agosto de 2008, 17:04 »
0
Hola espero este bien...
Tengo un procedimiento en Acces que abre un archivo de Excel

'-----------------------------------
Private Sub Comando13_Click()
On Error GoTo Errores

Dim Ap As Object
Dim Wb As Object


Set Ap = CreateObject("Excel.Application")
Set Wb = Ap.workbooks.Open(txtArchivo) ' el texto con la ruta del archivo

Fin = Range("A65000").End(xlUp).Row

For N = 1 To Fin
   'procesos
Next

Wb.Close SaveChanges:=False
Ap.Quit

Set Wb = Nothing
Set Ap = Nothing

MsgBox "El proceso de carga se terminó correctamente." & vbCrLf & Cadena, vbInformation

Exit Sub
Errores:
MsgBox Err.Description

End Sub
'-------------------------------

El problema es que no se esta cerrando realmente la instancia de Excel, y si intento ejecutar otra vez me sale "the remote server machine does not exist or is unavailable"

si alguien le ha sucedido lo mismo y ya lo ha solucionado te agradezco si me la compartes...Tank you

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Cerrar Instancia de Excel.Application
« Respuesta #1 en: Miércoles 6 de Agosto de 2008, 10:53 »
0
Primero, fíjate en mi firma.

Prueba a declarar e iniciar Ap y Wb tal que así y me cuentas:

Código: Text
  1.  
  2. Dim Ap As Excel.Application
  3. Dim Wb As Excel.Workbook
  4.  
  5. Set Ap = New Excel.Application
  6. Set Wb = oExcel.Workbooks.Open(txtArchivo)
  7.  
  8.  

jpardo84

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Encontre la solucion
« Respuesta #2 en: Miércoles 6 de Agosto de 2008, 15:18 »
0
OK primero muchas gracias,

el prblema estaba en la linea

Fin = Range("A65000").End(xlUp).Row

cuando yo hago referencia al objeto Range  o Cells cuando uso objeto de excel desde Access  no lo debo hacer sin antes ponerle toda la jerarquia de objetos asi:

Fin =  Wb.Worksheets("nombre_hoja").Range("A65000").End(xlUp).Row

no se por qué sucede pero sin esto no cierra la instancia y  parece que crea otra de Excel que no se puede eliminar de la memoria, pero bueno, esta era la solución...gracias por su interes

ecorrea_pe

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Cerrar Instancia de Excel.Application
« Respuesta #3 en: Lunes 1 de Septiembre de 2008, 19:38 »
0
Esto me ayudo a mi

using System.Runtime.InteropServices;

/////
//// todo el codigo necesario de tu aplicacion
////

                    //Limpiamos los objetos excel
                    if (apExcel != null) Marshal.ReleaseComObject(apExcel);
                    apExcel = null;

Saludos

Eriberto Correa

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Cerrar Instancia de Excel.Application
« Respuesta #4 en: Martes 2 de Septiembre de 2008, 07:07 »
0
Cita de: "ecorrea_pe"
Esto me ayudo a mi

using System.Runtime.InteropServices;

/////
//// todo el codigo necesario de tu aplicacion
////

                    //Limpiamos los objetos excel
                    if (apExcel != null) Marshal.ReleaseComObject(apExcel);
                    apExcel = null;

Saludos

Eriberto Correa

La diferencia es que la ayuda solicitada es en VBA no en .Net  y el foro es de (VBA)

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

ecorrea_pe

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Cerrar Instancia de Excel.Application
« Respuesta #5 en: Jueves 4 de Septiembre de 2008, 00:55 »
0
Bueno
Cambias el using por import  de VB.net

y las senticias debajo en este If .. son casi iguales que en VB que en C#

Saludos