Boa tarde a todos!!! gostaria pode contar co a ajuda dos grandes mestres para poder criar uma código VBA para fechar todas as instância do access aberta no mesmo pc. Tenho uma aplicação access que abre vários banco simultâneo, então eu queria que ao fechar o banco principal todas outros se fechassem. desde já agradeço pela atenção de todos.
2 participantes
[Resolvido]Fechar todas instância do access
eriberto- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 72
Registrado : 04/07/2013
- Mensagem nº1
[Resolvido]Fechar todas instância do access
luissiscone- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 184
Registrado : 16/02/2011
- Mensagem nº2
Re: [Resolvido]Fechar todas instância do access
Este exemplo inicialmente foi criado para fechar o Exel, mas funciona com access desde que as versões abertas sejam as mesmas...
Por gentileza mantanhe os créditos, pois não é meu este exemplo...
Option Compare Database
Private Sub cmdTeste_Click()
Call TerminateApp '("Microsoft Access - TerminarAppExemplo.mdb, accdb, etc.")
End Sub
Sub TerminateApp()
'---------------------------------------------------------------------------------------
' origem: http://www.taltech.com/support/entry/opening_and_closing_an_application_from_vba
' ahteixeira - 2015 - neste exemplo fecha Access.exe
'---------------------------------------------------------------------------------------
' Terminates the exe process specified.
' Uses WMI (Windows Management Instrumentation) to query all running processes
' then terminates ALL instances of the exe process held in the variable strTerminateThis.
'---------------------------------------------------------------------------------------
Dim strTerminateThis As String
'The variable to hold the process to terminate
Dim objWMIcimv2 As Object, objProcess As Object, objList As Object
Dim intError As Integer
'Process to terminate – you could specify and .exe program name here
'ALTERAR AQUI NOMEAPP"
strTerminateThis = "MSACCESS.exe"
'Connect to CIMV2 Namespace and then find the .exe process
Set objWMIcimv2 = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objList = objWMIcimv2.ExecQuery("select * from win32_process where name='" & strTerminateThis & "'")
For Each objProcess In objList
intError = objProcess.Terminate 'Terminates a process and all of its threads.
'Return value is 0 for success. Any other number is an error.
If intError <> 0 Then Exit For
Next
'ALL instances of exe (strTerminateThis) have been terminated
Set objWMIcimv2 = Nothing
Set objList = Nothing
Set objProcess = Nothing
End Sub
Por gentileza mantanhe os créditos, pois não é meu este exemplo...
Option Compare Database
Private Sub cmdTeste_Click()
Call TerminateApp '("Microsoft Access - TerminarAppExemplo.mdb, accdb, etc.")
End Sub
Sub TerminateApp()
'---------------------------------------------------------------------------------------
' origem: http://www.taltech.com/support/entry/opening_and_closing_an_application_from_vba
' ahteixeira - 2015 - neste exemplo fecha Access.exe
'---------------------------------------------------------------------------------------
' Terminates the exe process specified.
' Uses WMI (Windows Management Instrumentation) to query all running processes
' then terminates ALL instances of the exe process held in the variable strTerminateThis.
'---------------------------------------------------------------------------------------
Dim strTerminateThis As String
'The variable to hold the process to terminate
Dim objWMIcimv2 As Object, objProcess As Object, objList As Object
Dim intError As Integer
'Process to terminate – you could specify and .exe program name here
'ALTERAR AQUI NOMEAPP"
strTerminateThis = "MSACCESS.exe"
'Connect to CIMV2 Namespace and then find the .exe process
Set objWMIcimv2 = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objList = objWMIcimv2.ExecQuery("select * from win32_process where name='" & strTerminateThis & "'")
For Each objProcess In objList
intError = objProcess.Terminate 'Terminates a process and all of its threads.
'Return value is 0 for success. Any other number is an error.
If intError <> 0 Then Exit For
Next
'ALL instances of exe (strTerminateThis) have been terminated
Set objWMIcimv2 = Nothing
Set objList = Nothing
Set objProcess = Nothing
End Sub
eriberto- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 72
Registrado : 04/07/2013
- Mensagem nº3
Re: [Resolvido]Fechar todas instância do access
Luis muitissimo obrigado pela ajuda .... funcionou perfeitamente, e com certeza os creditos serão mantidos. mais uma vez muito obrigado..
italocosta gosta desta mensagem