IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Runtime Discussion :

Peut-on lier les tables à l'installation du runtime


Sujet :

Runtime

  1. #1
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    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
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    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,

  4. #4
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    Par défaut
    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
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Oui, cheveche, tu as raison il faut faire un refreshlink. Mon explication était partielle.

    Voilà un peu bout de code qui fait cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 15
    Dernier message: 22/06/2006, 16h17
  2. Lier les tables au démarrage
    Par Mors_Ubyte dans le forum Access
    Réponses: 8
    Dernier message: 06/01/2006, 09h22
  3. 'lier les tables' relation excel/access
    Par rahan_dave dans le forum Access
    Réponses: 7
    Dernier message: 08/11/2005, 17h08
  4. Lier les tables
    Par Gebudi dans le forum Access
    Réponses: 11
    Dernier message: 31/08/2005, 12h57
  5. lier les tables acces oracle
    Par xtaze dans le forum Access
    Réponses: 5
    Dernier message: 12/06/2005, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo