Foros del Web » Programación para mayores de 30 ;) » .NET »

Lllamada a Access que no se cierra

Estas en el tema de Lllamada a Access que no se cierra en el foro de .NET en Foros del Web. Hola de nuevo, desde mi aplicación de VB 2005 hago una llamada a access para abrilo y de esta forma habilitar su modulo de consultas. ...
  #1 (permalink)  
Antiguo 29/04/2009, 05:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 2 meses
Puntos: 1
Lllamada a Access que no se cierra

Hola de nuevo,
desde mi aplicación de VB 2005 hago una llamada a access para abrilo y de esta forma habilitar su modulo de consultas.
El proble es que luego no se cierra, si me voy al 'administrador de tareas', veo que se van quedando ahi todas las llamadas, aunque se cierre access correctamente.
El código que utilizo es este:
Código:
Imports Microsoft.Office.Interop
Module mdConsultas
    Public Sub ConsultaAccess()
        'Static oAccess As Access.Application
        Dim oAccess = New Access.Application
        Try
            oAccess = CreateObject("Access.Application")
            With oAccess
                .Visible = True
                .OpenCurrentDatabase(bdConsultas)
            End With
        Catch
            oAccess.Quit()
            oAccess = Nothing
        End Try
    End Sub
End Module
¿como hago para que al cerrar la aplicación de access abierta desde este código, me desaparezca todo alusión a access, ya que me va comiendo memoria inutilmente.

Gracias
  #2 (permalink)  
Antiguo 29/04/2009, 07:24
 
Fecha de Ingreso: abril-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: Lllamada a Access que no se cierra

Hola,
Prueba a matarlo accediendo directamente a los procesos de windows a través de WMI, en google hay bastante documentación, aquí tienes un enlace, saludos.

http://www.recursosvisualbasic.com.a...l-basic/14.htm
  #3 (permalink)  
Antiguo 29/04/2009, 08:02
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 11 meses
Puntos: 220
Respuesta: Lllamada a Access que no se cierra

prueba esto agregando al final del try

Código:
                    ' Reduciendo el Consumo de Memoria de la Coleccion Com de Nuestro Objeto
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess)

                    GC.Collect()                    ' Obliga q se lleve a Cabo la recoleccion de elementos y vaciarlos
                    GC.WaitForPendingFinalizers()   ' Suspende el Subproceso Actual hasta q se suspenda el otro SubProceso
esto no matara el proceso al instante sino q dependera del proceso q lo llamo es decir q se cerrara el proceso hasta q mate al proceso padre q lo llamo - cuando cierras tu formulario o tu aplicacion
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Última edición por Dradi7; 29/04/2009 a las 08:12
  #4 (permalink)  
Antiguo 01/05/2009, 10:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Lllamada a Access que no se cierra

Miraré ambas posibilidades con calma.

De momento lo he resuelto (o eso creo al menos) con un 'shell'
Código:
            Shell("C:\Archivos de programa\Microsoft Office\OFFICE11\msaccess.exe " & bdConsultas, AppWinStyle.NormalFocus)
Puede parecer un tanto chapucero, pero funciona

Gracias y un saludo
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 05:21.