Alvaro Teixeira 8/3/2021, 14:51
Olá Luis,
O exemplo de código que está a usar é do Maestro do nosso colega Avelino, e o mesmo usa algumas técnicas para não revelar a palavra passe do BackEnd.
É um excelente exemplo, mas é necessário compreender bem o código e que utilização vamos dar.
Verifiquei que o seu BackEnd não tem palavra-passe e parece que o código está imcompleto.
No entanto adicionei esta função:
- Código:
Function fncTabelaEstaLigada(sNomeTabela As String) As Boolean
' Autor ..: Alvaro Teixeira (ahteixeira)
' Código .: fncTabelaEstaLigada
' Data ...: 07-07-2016
' Para ...: MaximoAccess.com
' Verifica apenas se existe a ligação/vinculo, não verifica se existe o ficheiro ou tabela da ligação
fncTabelaEstaLigada = DCount("*", "MSysObjects", "MSysObjects.Name = '" & sNomeTabela & "' AND MSysObjects.Type = 6")
End Function
E adicionei esta parte no código do modulo
- Código:
'DoCmd.OpenForm "frmBarraProgresso", OpenArgs:=1
'ahteixeira para MaximoAccess 08-03-2021
Dim dbe As DAO.Database
Dim tdefs As TableDefs, tdef As TableDef
Set dbe = DBEngine.OpenDatabase(CaminhoAtual)
For Each tdef In dbe.TableDefs
If Left(tdef.Name, 4) <> "MSys" Then
If fncTabelaEstaLigada(tdef.Name) Then DoCmd.DeleteObject acTable, tdef.Name
DoCmd.TransferDatabase acLink, "Microsoft Access", _
CaminhoAtual, acTable, tdef.Name, tdef.Name
End If
Next tdef
dbe.Close
Set dbe = Nothing
If Len(Trim(DLookup("formPrincipal", "tblCaminhoBe")) & "") > 0 Then
DoCmd.OpenForm DLookup("formPrincipal", "tblCaminhoBe")
End If
'fim ahteixeira para MaximoAccess 08-03-2021
Optei pelo simples, verifique se é o resultado pretendido.
Segue o meu teste.
Abraço
- Anexos
- LigarTabelasSemPassword.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (178 Kb) Baixado 22 vez(es)