Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Runtime
Runtime Forum destiné à recevoir toutes vos questions concernant le Runtime (empaquetage, déploiement...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2011, 13h05   #1
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Par défaut attaches des tables liées

Bonjour,

Dans le cadre d'un empaquetage, j'ai scindé ma base. Le souci est que quand l'application est déployée sur un autre poste, les tables sont cherchées à l'endroit où elles sont placées sur mon poste. Donc, le chemin n'est pas bon sur le poste utilisateur et ça plante.

Je pensais définir un chemin cohérent via le "Gestionnaire de tables liées" en indiquant le chemin d'installation sur le poste utilisateur "C:/Program files/xxx" mais les tables liées et attaches n'apparaissent pas ?

atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 18h28   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 475
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 475
Points : 7 564
Points : 7 564
As-tu essayé avec une copie 'non empactée' de ta frontale ?

Sinon tu peux peut-être t'en tiré avec du code vBA qui va refaire les liens (ci-dessous un exemple) :

Code :
1
2
3
4
5
6
7
8
dim db as dao.database:set db=currentdb
dim t as dao.tabledef:for each t in dao.tabledefs
   if t.connect<>"" then
      t.connect="Ici la nouvelle chaîne de connexion"
      t.refreshlink
   end if
next t
set db=nothing
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 12h52   #3
Membre actif
 
Inscription : juin 2007
Messages : 786
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 786
Points : 191
Points : 191
Bonjour,

Ayant eu le même souci, j'ai adapté ce code : http://www.3stone.be/access/articles.php?lng=fr&pg=28

Citation:
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
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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
Daejung est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 13h00   #4
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 076
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 076
Points : 4 396
Points : 4 396
Envoyer un message via Skype™ à GAYOT
Bonjour
Un peu de lecture également:
http://jdgayot.developpez.com/tutori...cess/liaisons/
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 15h00   #5
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Merci pour les propositions qui pourront servir éventuellement à d'autres (au final, je ne vais pas passer par le runtime...).
Cordialement.
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h39.


 
 
 
 
Partenaires

Hébergement Web