RATTACHEMENT DE TABLE AUTOMATIQUE ACCESS

Signaler
Messages postés
62
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
4 août 2004
-
Messages postés
24
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
20 novembre 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23419-rattachement-de-table-automatique-access

Messages postés
24
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
20 novembre 2011

Nouvelle version avec utilisation d'une table pour stocké le rattachement

' rattache les tables à partir du fichier ini passé en paramètre
' le fichier contient les lignes avec ce format :
' NOMTABLE=Param_de_connection
Sub P_RattacheTable()
Dim TableEnCours As TableDef

Set db = CurrentDb
sql = "select * from TableAttache"
Set rsTblAttache = db.OpenRecordset(sql)
Do While Not rsTblAttache.EOF
For Each TableEnCours In db.TableDefs
'on vérifie que c'est la bonne table
If TableEnCours.SourceTableName = rsTblAttache.Fields("NomTableAttache") Then
'mise à jours du lien ssi il a changé
If TableEnCours.Connect <> rsTblAttache.Fields("LienTableAttache") Then
TableEnCours.Connect = rsTblAttache.Fields("LienTableAttache")
TableEnCours.RefreshLink
End If
Exit For
End If
Next
rsTblAttache.MoveNext
Loop
rsTblAttache.Close
Set rsTblAttache = Nothing
End Sub

Sub P_GenRattacheTable()
Dim TableEnCours As TableDef
Set db = CurrentDb
sql = "delete from TableAttache"
db.Execute (sql)
For Each TableEnCours In db.TableDefs
' uniquement si la table est attachée
If Len(TableEnCours.Connect) > 0 Then
sql = "insert into TableAttache (NomTableAttache, LienTableAttache) values ("
sql = sql & "'" & TableEnCours.SourceTableName & "',"
sql = sql & "'" & TableEnCours.Connect & "')"
db.Execute (sql)
End If
Next

End Sub
Messages postés
24
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
20 novembre 2011

comme on dit, les choses les plus simples,
Je suis AE et j'ai aussi mon site perso ici : www.benke.fr
si tu as des besoins en dev, ben hésite pas
Messages postés
5
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
14 février 2010

Bon sang, j'utilise ta solution 1 (inélégante à souhait !)depuis 15 ans sans jamais avoir pensé à la seconde !!! D'autant que, si je me souviens bien, une création d'attache vers un back-end est quasi-instantanné, même si il est ouvert par d'autres utilisateurs.

Encore bravo pour cette suggestion !!!

Si je peux t'être d'une quelconque aide, n'hésite pas : tu peux voir mes applis en tapant cd.concept.online.fr dans ton navigateur.

A+
Messages postés
24
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
20 novembre 2011

D'après ce que j'en sait ce n'est pas possible car access vérifie que la base est accessible (ce qui est assez logique, le contraire serait génant).
Une solution pas très élégante serait de reproduire ton environnement back-end en qualif et préparer ta connection ainsi.
Sinon tu n'attaches aucune table lors de ta configuration et tu laisses la fonction créer les attachements lors de son premier lancement chez ton client...
Afficher les 16 commentaires