Prezados, estou com um problema em um código, quando da abertura do sistema, o qual verifica o System.mdw setado no Access, se for diferente do system.mdw do sistema atual então atualiza o registro com o .mdw correto, e inseri através de uma função, o Login, a senha e o caminho do aplicativo e logo depois encerra o sistema e salva a instância para abrir novamente, agora já com o .mdw correto, até então tudo bem, o sistema sempre funcionou sem nenhum problema desde de 2005, acontece que em alguns clientes, os mesmos atualizaram os seus Windows para 64bits e com isto o sistema parou de funcionar, então resolvi utilizar a ferramenta da Katorffel o KSDRun, que por sinal funciona muito bem, mas com a utilização da ferramenta, acontece que quando encerra o sistema para abrir novamente a instância, agora já setado o ".mdw" correto, não para de abrir novas instâncias do sistema, o que não acontecia antes, eu já repassei o código várias vezes e não consigo encontrar uma solução para este problema, se alguém já passou por esta questão e solucionou, ou algum colega puder me indicar o caminho das pedras, eu antecipadamente agradeço.
Código utilizado:
Código utilizado:
- Código:
Private Sub RodaSeguranca()
On Error Resume Next
Dim strSystem As String
Dim strPath As String
Dim strCaminho As String
'----------------------------------------------------------------------------------------------------
'Constante para access 97
Const strLocal = "Software\Microsoft\Office\8.0\Access\jet\3.5\Engines\"
'Obtem o caminho do banco de dados
strCaminho = fCurrentDBDir
'Verifica a existência do Arquivo de inicialização
If Len(Dir(strCaminho & "Siga.ini")) > 0 Then
'Lê o caminho do arquivo mdw do sistema no arquivo "ini" e inseri na varíavel strPath
strPath = DirAtualRede((LeIni("Geral", "Caminho", strCaminho & "Siga.ini")), True)
'MsgBox strPath
Else
'Obtem o caminho do Sistema
strPath = fCurrentDBDir
End If
'Chama a função para verificar referência a Biblioteca
Call CriaRefArquivo("cMSystem", strPath)
'Verifica o System.mdw atual do sistema e inseri na varíavel strSystem
strSystem = SysCmd(acSysCmdGetWorkgroupFile)
'---------------------------------------------------------------------------------------------------
'Verifica o .mdw setado no Access, se for diferente do system.mdw do sistema então atualiza o registro
If strSystem <> strPath & "Siga.mdw" Then
'Chama a função na biblioteca para setar o novo system.mdw
Call Application.Run("cMSystem.EscreveChave", strLocal, strPath & "Siga.mdw")
'Passa para função o Login, a senha e o caminho do seu aplicativo
Call Application.Run("cMSystem.AbreSenha", "Siga", "senha", strPath & "Siga_fe.mde", strLocal)
'& "Siga_fe.mde", strLocal)
'encerra o aplicativo e salva a instância para abrir em outra janela
Application.Quit acSave
Else
'Chama a função que verifica qual Windows esta sendo utilizado
Call InformaOS
'Windows XP e acima
If Versao = "Windows NT 5.1" Then
'seta o system.mdw original do Access
Call Application.Run("cMSystem.EscreveChave", strLocal, "c:\windows\system32\system.mdw")
'Windows 98
Else
'seta o system.mdw original do Access
Call Application.Run("cMSystem.EscreveChave", strLocal, "c:\windows\system\system.mdw")
End If
End If
'-----------------------------------------------------------------------------------------------------
End Sub
Última edição por pankeka em 22/8/2022, 23:22, editado 1 vez(es) (Motivo da edição : erro)