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 29/02/2008, 20h34   #1
Membre Expert
 
Avatar de curt
 
Homme Curt
Bureau d'Etudes
Inscription : mars 2006
Messages : 983
Détails du profil
Informations personnelles :
Nom : Homme Curt
Localisation : France

Informations professionnelles :
Activité : Bureau d'Etudes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : mars 2006
Messages : 983
Points : 1 172
Points : 1 172
Par défaut Peut-on lier les tables à l'installation du runtime

Bonsoir à tous,

Ma question est la suivante : j'ai une base (frontal sur poste et dorsal sur serveur) qui devrait être déployée sur plusieurs sites. Le problème est que l'architecture de chaque site peut être différente... Est-il possible de définir le chemin des tables liées au moment de l'installation du runtime sur les postes clients ou bien, tout est défini "en dur" par le développeur sur son poste équipé d'Access avant l'empaquetage ?

Bonne soirée et bon week-end à tous.

Curt
curt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 21h57   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 482
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 482
Points : 7 577
Points : 7 577
Tu peux le faire par programme mais il faut le prévoir.

Je fait généralement un petit formulaire où je demande à l'utilisateur de me dire où sont les données puis je boucle sur la collection TableDefs et je mets à jour la propriété .Connect des objet TableDef qu'elle contient.

Ça marche trés bien.

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 01/03/2008, 07h28   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 4
Points : 4
Je crois qu'il faut ajouter un .refreshlink après le .connect.
Sinon, la liaison n'est pas mise à jour.

Enfin, c'est ce que je fais et cela fonctionne,
cheveche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2008, 10h42   #4
Membre Expert
 
Avatar de curt
 
Homme Curt
Bureau d'Etudes
Inscription : mars 2006
Messages : 983
Détails du profil
Informations personnelles :
Nom : Homme Curt
Localisation : France

Informations professionnelles :
Activité : Bureau d'Etudes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : mars 2006
Messages : 983
Points : 1 172
Points : 1 172
Bonjour à tous, et merci à Cheveche et Marot_r pour les infos.

Auriez-vous un exemple ou un tuto pour expliquer tout ça?
Je serais preneur et peut être d'autres développeurs également.

Encore merci.

Curt
curt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 17h18   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 482
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 482
Points : 7 577
Points : 7 577
Oui, cheveche, tu as raison il faut faire un refreshlink. Mon explication était partielle.

Voilà un peu bout de code qui fait cela.

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
 
Public Function RelinkerTables(prmNomBaseLiee As String, prmCheminBaseLiee As String) As Boolean
    Dim relinkReussi As Boolean: relinkReussi = True
 
    Dim t As TableDef
    Dim db As Database: Set db = CodeDb
    Dim NomBaseLiee As String
 
    If BaseLieeExiste(prmNomBaseLiee, prmCheminBaseLiee) Then
            relinkReussi = True
 
            For Each t In db.TableDefs
 
                If t.Connect <> "" Then
                    NomBaseLiee = LireNomFichier(t.Connect)
 
                    If NomBaseLiee = prmNomBaseLiee Then
                        t.Connect = ";DATABASE=" & prmCheminBaseLiee & prmNomBaseLiee
                        t.RefreshLink
                    End If
 
                End If
 
            Next t
 
        Else
            relinkReussi = False
    End If
 
    db.Close: Set db = Nothing
 
    RelinkerTables = relinkReussi
End Function
Note il faut adapter le .Connect selon le type de base sur laquelle on se connecte. Celui-ci est pour une base Access.
Code :
1
2
3
4
 
Private Function BaseLieeExiste(prmNomBaseLiee As String, prmCheminBaseLiee As String) As Boolean
    BaseLieeExiste = (Dir(prmCheminBaseLiee & prmNomBaseLiee) <> "")
End Function
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h29.


 
 
 
 
Partenaires

Hébergement Web