Les mémos

Fermer Tables

Fermer Requêtes

Fermer Formulaires

Fermer Etats

Fermer Modules

Fermer Base

Fermer Automation

Fermer Administration

Fermer Registre

Fermer String

Fermer Email CDO

Fermer Outlook

Fermer Net

Fermer Dates - Heures

Fermer Fichiers

Fermer Références

Fermer Vrac

Je débute...

Fermer La normalisation

Fermer VBA

Attention
Aucun support
par émail !

Utilisez le forum pour les questions/réponses concernant MsAccess et les codes que vous trouverez sur ce site.
Visites

   visiteurs

   visiteurs en ligne

Tables - Réattacher les liens

Rafraîchissement automatique des liaisons des tables attachées.

 

Exécuter par exemple la fonction fCheckLinks depuis une Macro nommée Autoexec.
(En réseau local multi-postes, cette méthode qui exploite une erreur d'ouverture
de recordset s'avère bien plus rapide que la lecture de la propriété .Connect de l'objet TblDef)

 

N'oubliez pas la référence DAO

 

Dim nbTbl As LongDim idx As Long

Dim dbs As DAO.Database

Dim TblDef As DAO.TableDef

 

Function fCheckLinks()

Dim rst As DAO.Recordset

Set dbs = CurrentDb()

On Error Resume Next

nbTbl = dbs.TableDefs.Count

For idx = 0 To nbTbl - 1

Set TblDef = dbs.TableDefs(idx)

If TblDef.Attributes = dbAttachedTable Then

Set rst = dbs.OpenRecordset(TblDef.Name)

End If

Next idx

If Err <> 0 Then

fRefreshLinks

End If

rst.Close

dbs.Close

Set rst = Nothing

Set dbs = Nothing

End Function

 

Sub fRefreshLinks()

Dim newpath As String

On Error Resume Next

newpath = fOpenFile("Choisir la Back-End",, False)

'N'oubliez pas la fonction fOpenFile

For idx = 0 To nbTbl - 1

Set TblDef = dbs.TableDefs(idx)

If TblDef.Connect <> "" Then

TblDef.Connect = ";DATABASE=" & newpath

TblDef.RefreshLink

End If

Next idx

If Err = 0 Then

MsgBox "Bienvenue !", vbInformation + vbOKOnly, "Welcome !"

Exit Sub

Else

If MsgBox("Les Tables n'ont pas été trouvées " _
        & "dans la base sélectionnée, voulez-vous essayer à nouveau ?", _
        vbExclamation + vbYesNo, "Sélection non Valide") = vbNo Then

dbs.Close

Set dbs = Nothing

Set TblDef = Nothing

MsgBox "Au Revoir !", vbCritical + vbOKOnly, _

"Fermeture de l'application"

DoCmd.Quit

Else

dbs.Close

Set dbs = Nothing

Set TblDef = Nothing

Call fCheckLinks

End If

End If

End Sub


Date de création : 27/10/2005 : 19:35
Dernière modification : 08/02/2010 : 01:29
Catégorie : Tables
Page lue 8846 fois


Imprimer l'article Imprimer l'article

Recherche



Lettre d'information
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha
Recopier le code :
Au sujet de l'auteur
L'auteur qui fréquente (fréquentait) le forum microsoft.public.fr.access a eu le plaisir d'être nommé MVP Office-Access de janvier 2003 à décembre 2011.

Qui sont les MVP ?

Divers ;-)
Nous contacter

Haut