Como mudar esta função para o meu front-end verificar em 04 back-end separados ? --- meu front usa 4 backs ...
{ Observe no código abaixo, que primeiro se percorre as tabelas do front-end para verificar se estão com os vínculos quebrados. Os vínculos quebrados são deletados. }
Font - By Avelino Sampaio - UsandoAccess usandoaccess.com.br/blog/vincular-tabelas-pelo-vba.asp#inicio
{ Observe no código abaixo, que primeiro se percorre as tabelas do front-end para verificar se estão com os vínculos quebrados. Os vínculos quebrados são deletados. }
- Código:
Public Sub fncVincular()
Dim be As DAO.Database
Dim tbl As DAO.TableDef
Dim LocalBe$
LocalBe = CurrentProject.Path & "\vincular_be.mdb"
'Percorre as tabelas no front-end e verifica se tem tabelas com vínculos quebrados
For Each tbl In CurrentDb.TableDefs
If Left(tbl.Name, 4) <> "MSys" And Left(tbl.Name, 4) <> "Usys" Then
If Not fncTabelaExiste(tbl.Name) Then
'Excluir vínculo da tabela não existente no back-end
DoCmd.DeleteObject acTable, tbl.Name
End If
End If
Next
Set be = DBEngine.OpenDatabase(LocalBe, False, False, ";PWD=a1234")
'Percorre as tabelas do back-end e verifica uma a uma,se está ou não,vinculada no front-end
For Each tbl In be.TableDefs
If Left(tbl.Name, 4) <> "MSys" And Left(tbl.Name, 4) <> "Usys" Then
If Not fncTabelaExiste(tbl.Name) Then
'Realiza a vinculação da tabela não existente no front-end
DoCmd.TransferDatabase acLink, "Microsoft Access", LocalBe, acTable, tbl.Name, tbl.Name
End If
End If
Next
be.Close
MsgBox "Tabelas Vinculadas..", vbInformation, "Aviso"
Set be = Nothing
Set tbl = Nothing
End Sub
- Código:
Public Function fncTabelaExiste(strNomeTabela As String) As Boolean
Dim rs As DAO.Recordset
'---------------------------------------------------------------
'Solicita ao VBA que prossiga com a execução do código,
'mesmo havendo erro e sem mostrar nenhuma mensagem.
'---------------------------------------------------------------
On Error Resume Next
'-----------------------------------
'Abre a tabela pesquisada
'-----------------------------------
Set rs = CurrentDb.OpenRecordset(strNomeTabela)
'---------------------------------------------------------------
'Se a tabela não existir, haverá erro e o valor(3078/3024) será
'armazenado no objeto Err. Este valor poderá ser investigado
'através do comando Err.number
'---------------------------------------------------------------
Select Case Err.Number
Case 3078, 3024
fncTabelaExiste = False
Case 0
fncTabelaExiste = True
End Select
Set rs = Nothing
End Function
Font - By Avelino Sampaio - UsandoAccess usandoaccess.com.br/blog/vincular-tabelas-pelo-vba.asp#inicio