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

Access Discussion :

lier automatiquement les tables


Sujet :

Access

  1. #1
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut lier automatiquement les tables
    je cherche à lier automatiquement les tables de ma base frontale à la base dorsale qui est soit sur un serveur pour utilisation normale soi sur mon disque dur pour modif.

    j'ai trouvé ce code sur le forum je le comprend a peu pres mais j'ai du mal à le mettre en oeuvre

    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
    34
    35
    36
    37
    38
    39
    Function fRediriger_donnees(arg_chemin As String) As Boolean
     
     
        Dim Var As Variant
        Dim I As Integer
        Dim Tdf As TableDef
        Dim Db As Database
     
     
        On Error GoTo fRediriger_donnees_Error
     
     
        fRediriger_donnees = False
        Set Db = CurrentDb
        Var = SysCmd(SYSCMD_INITMETER, "Patientez !!! Réorganisation en cours des données...", Db.TableDefs.Count)
        For I = 0 To Db.TableDefs.Count - 1
            Set Tdf = Db.TableDefs(I)
            If Tdf.Connect & "" <> "" Then 'la table est attachée
                Tdf.Connect = ";DATABASE=" & arg_chemin
                Tdf.RefreshLink
            End If
            Set Tdf = Nothing
            Var = SysCmd(SYSCMD_UPDATEMETER, I)
        Next I
        fRediriger_donnees = True
     
     
    fRediriger_donnees_Exit:
        Var = SysCmd(SYSCMD_REMOVEMETER)
        Set Db = Nothing
        Set Tdf = Nothing
        Exit Function
     
    fRediriger_donnees_Error:
        fError Err.Number, Err.Description, "fRediriger_donnees"
        fRediriger_donnees = False
        GoTo fRediriger_donnees_Exit
     
    End Function
    que tu utilise comme ça :


    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub donnees_locales()
    fRediriger_donnees ("D:\xxxxxxxxxxxx.mdb")
    End Sub
    Sub donnees_reseau()
    fRediriger_donnees ("T:\xxxxxxxxx.mdb")
    End Sub
    La question est simple comment l'intégrer dans ma base de données
    Je supose sur l'ouverture du formulair "menu général"....

    Mais la "fonction".... est ce que c'est un module?
    merci de votre aide

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    la fonction c'est fRediriger_donnees.

    Tu colles le code de cette fonction dans un module de code.
    Un module de code peut contenirs plusieurs fonctions (Function ... End Function) et plusieurs procédures (Sub ... End Sub).

    Dans ce même module tu colles tes deux Sub (donnees_locales et donnees_reseau).

    Ensuite tu peux créer deux boutons sur un formulaire qui exécuterons donnees_locales ou donnees_reseau .

    A+

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Les tables sont-elles toujours au même endroit ?

    Si c'est le cas, il n'est pas nécessaire de faire un rafraîchissement du lien des tables.

  4. #4
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    merci pour vos réponse.
    Je pensais bien qu'il fallait mettre ca dans un module maintenant j'en suis sur.
    Effectivement la base dorsale peut changer de place en fonction de son utilisation (normale ou maintenance)

    merci encore je vais essayer avant de poster résolu.

  5. #5
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    alors j'ai tout bien collé
    mais j'ai pas trouvé le code à mettre sur les boutons
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Commande85_Click()
    fRediriger_donnees donnees_locales() 'locale
    End Sub
     
    Private Sub Commande86_Click()
    fRediriger_donnees donnees_reseau() 'reseau
    End Sub
    Dans le module j'ai changé le chemin d'accés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub donnees_locales()
    fRediriger_donnees ("C:\Program Files\gestion SEGPA\Eleves SEGPA données.mdb")
    End Sub
    Sub donnees_reseau()
    fRediriger_donnees ("C:\Program Files\gestion SEGPA\Copie de Eleves segpa données.mdb")
    End Sub
    mais je n'est rien changé dans la fonction..... peut etre qu'il faut
    ou alors je suis bidon et j'ai tout simplement pas trouvé le bon code pour les boutons (je crois que c'est ça malheureusement )

    merci de votre aide

  6. #6
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    je crois que j'ai trouvé quelquechose pour mes boutons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Commande85_Click()
    fRediriger_donnees ("C:\Program Files\gestion SEGPA\Eleves segpa données.mdb")
     'locale
    End Sub
     
    Private Sub Commande86_Click()
    fRediriger_donnees ("C:\Program Files\gestion SEGPA\Copie de Eleves segpa données.mdb")
     'reseau
    End Sub
    mais si je fais comme ca pourquoi a t'on mis les 2 sub dans le modules? Faut 'il les 2?

    Si je veux que le changement se fasse automatiquement (au boulot la base dorsale est uniquement sur le réseaux et chez moi sur mon disque dur) est ce que ce code peut etre mis sur l'évènement "sur ouverture" d'un formulaire "menu général"
    but : Si j'oublie de changer le chemin des tables en arrivant au boulot je souhaite que la base se connecte toute seule au réseaux...... en plus j'utilise le runtime au boulot donc pas facile de changer le chemin...)

    merci encore

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Bonjour,

    Le sujet a été traité de nombreuses fois sur le forum.

    Une petite recherche te donnera les codes à mettre en place (vérification attachement au lancement, boite de dialogue Ouvrir Fichier, attachement depuis le nouvel emplacement)

    Cordialement,

  8. #8
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    bon je vais un peu mieux chercher alors

    merci

  9. #9
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    pour appeler les deux Sub, il suffit de mettre leur nom dans le code des boutons.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Commande85_Click()
     donnees_locales 'locale
    End Sub
     
    Private Sub Commande86_Click()
     donnees_reseau 'reseau
    End Sub
    Ces deux Subs ne sont pas obligatoires, sauf si la fonction fRediriger_donnees est déclarée avec Private.
    Leur utilisation dans le codes boutons rend peut-être le code plus lisible ?

    A+

  10. #10
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    merci pour ces explication maintenant je comprends mieux ce code

    un petit bonus peut etre....

    lorsque je clique sur mon bouton je change de table dorsale mais je voudrais que le formulaire ce mette à jour

    j'ai essayé ceci à la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     DoCmd.SelectObject acForm, "Menu Général"
    Me.Refresh
    mais sans succés

  11. #11
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Tu peux utiliser la méthode Requery
    ou recharger complètement le formulaire, en le fermant et le réouvrant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim strForm As String
    strForm = Me.Form.Name
    DoCmd.Close acForm, strForm
    DoCmd.OpenForm strForm
    A+

  12. #12
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    bon en bidouilant j'ai trouvé une astuce qui tient avec des bouts de ficelle
    mais personne à trouver mieux pour le moment alors tout betement je ferme et je reouvre mon document

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande86_Click()
    donnees_reseau
    DoCmd.Close
    DoCmd.OpenForm "Menu Général"
    End Sub
    Pour le moment ca marche bien puisque je lance mon code par un bouton mais par la suite je désirai qu'en ouvrant le formulaire il se connecte à la base réseaux et si elle n'est pas joignable (par ce que je ne suis pas au boulot) elle se connecte à la base sur le disque dur

    je vais y travailler et je vous tient au courant
    Merci à ceux qui ont participé

  13. #13
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    oups on a du poster le message presque en meme temps
    le requery n'a pas fonctionné je l'avais deja testé

    et pour le reste on a eu la meme idée

    Ps pour le requery ca ne marche pas peut etre parce que les infos à mettre à jour sont dans un sousformulaire... je vais essayer.

  14. #14
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Pour ce qui est de la création automatique des liens, tu peux tester la présense de la base sur le réseau
    avec la fonction Dir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim strBaseReseau as String
     
    strBaseReseau = ""
    On Error Resume Next
    strBaseReseau = Dir("CheminReseauVersLaBase")
    On Error Goto 0
     
    If strBaseReseau <> "" Then
       donnees_reseau
    Else
       donnees_locales
    End If
    CheminReseauVersLaBase est le chemin complet vers la base + le nom de la base.

    A+

  15. #15
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    Hello
    Tout d'abord merci pour ce code qui marche à merveille.

    J'ai voulu le modifier un peu pour afficher des msgbox d'avertissement pour que l'utilisateur saches sur quelle base il est connecté (ca c'est pour le fun parce que normalement au boulot la base n'est que sur le réseau et donc ca n'a pas forcément d'intéret mais bon...)

    Par contre j'ai encore un souci avec ce code
    En effet la base se connecte mais le formulaire ne se met pas à jour. Sur ce formulaire il y a un sous formulaire qui affiche des infos qu'il prend dans la base.

    Avec le system de bouton que j'avais au début je fermais et reouvrais le formulaire mais maintenant si j'utilise cette méthode je me trouve dans une boucle sans fin.....

    voici le code actuel
    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
    34
    35
    Dim strBaseReseau As String
    Dim strBaselocale As String
    strBaseReseau = ""
    strBaselocale = ""
     
    On Error Resume Next
    'strBaseReseau = Dir("\\Serveur00\segpa\Administration\Gestion SEGPA\Eleves SEGPA données.mdb")
    strBaseReseau = Dir("C:\Program Files\gestion SEGPA\copie de Eleves SEGPA données.mdb")
     
    strBaselocale = Dir("C\Program Files\gestion SEGPA\Eleves segpa données.mdb")
     
    On Error GoTo 0
     
    retour:
    If strBaseReseau <> "" Then
       donnees_reseau
       DoCmd.Close
       DoCmd.OpenForm "Menu Général"
    Else
     
       If MsgBox("La base réseau ne peut être jointe. Vérifiez votre connexion réseau. Cliquez sur Oui pour réessayer, sur non pour vous connecter à une base locale (pour maintenance seulement) ou sur annuler pour abandonner", vbYesNoCancel, "Avertissement connexion:") = vbYes Then
       GoTo retour
       Else
         If strBaselocale <> "" Then
          MsgBox "Aucune Base disponible, réessayez lorsque le réseau sera connecté"
          DoCmd.Quit
         Else
         donnees_locales
            DoCmd.Close
            DoCmd.OpenForm "Menu Général"
     
           End If
        End If
    End If
    End Sub
    Alors j'ai deux idées:
    La premiere serais de mettre un compteur qui au départ vérifie si le formulaire s'ouvre pour la premiere fois ou s'il s'ouvre pour se mettre à jour...... mais bien évidemment je ne sais pas comment on fait.

    La seconde idée:
    J'ai un formulaire d'accueil dans ma base de données (style splashscreen) Peut etre que si je mettais le code sur ce formulaire je n'aurais pas besoin de faire de mise à jour puisque le menu général s'ouvrirai sur la bonne base...

    Je pense que c'est le plus facile mais par curiosité je voulais savoir ce que vous en pensiez....

    Merci encore pour votre intéret

  16. #16
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    bonsoir,

    la deuxième solution semble la plus simple.
    Ton premier formulaire lie les tables, puis ouvre ton formulaire principal.

    Sinon, j'utilise une troisième solution :
    La macro Autoexec (c'est le nom de la macro).
    Si cette macro existe dans la base donnée, Access l'exécute à l'ouverture de la base.
    Pour pouvoir initialiser une base avec du code vba, je mets ce code dans une fonction vba (Function ... End Function),
    dans un module de code (pas un module de formulaire) ,et je fais appeler cette fonction par la macro Autoexec.
    Pour cela il faut utiliser l'action "ExécuterCode" dans la macro, et mettre en argument le nom de la fonction ( ex: MaFonction() ).
    A la fin de la fonction ou dans la macro Autoexec je fais ouvrir mon formulaire principal,
    comme ça je suis certain que mon code s'est exécuté avent l'ouverture du formulaire.

    Voila.

    Bon courage

  17. #17
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    Ok j'ai préféré mettre mon code dans le formulaire d'accueil du coup quand le menu général s'ouvre il a les bonnes données

    J'ai besoin d'un petit renseignement sur la commande "dir"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim strBaseReseau as String
     
    strBaseReseau = ""
    On Error Resume Next
    strBaseReseau = Dir("CheminReseauVersLaBase")
    On Error Goto 0
     
    If strBaseReseau <> "" Then
       donnees_reseau
    Else
       donnees_locales
    End If
    J'ai du mal à la cerner.

    Quand je fais dir il regarde si le fichier est accessible.
    S'il le trouve il revoie une chaine vide "" c'est ça?
    Donc dans le code ci dessus s'il trouve le chemin il connecte se connecte à la base réseau et s'il ne trouve pas le chemin (Que renvoie la fonction dir?) il se connecte à la base locale.

    Si j'ai tout bien compris j'ai encore un pb dans le code que j'ai essayé de modifier que voici:


    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
    34
    35
    Dim strBaseReseau As String
    Dim strBaselocale As String
    strBaseReseau = ""
    strBaselocale = ""
     
    On Error Resume Next
    'strBaseReseau = Dir("\\Serveur00\segpa\Administration\Gestion SEGPA\Eleves SEGPA données.mdb")
    strBaseReseau = Dir("C:\Program Files\gestion SEGPA\copie de Eleves SEGPA données.mdb")
     
    strBaselocale = Dir("C\Program Files\gestion SEGPA\Eleves segpa données.mdb")
     
    On Error GoTo 0
     
    retour:
    If strBaseReseau <> "" Then
       donnees_reseau
    Else
     
       If MsgBox("La base réseau ne peut être jointe. Vérifier votre connexion réseau. Cliquez sur Oui pour réessayer, sur non pour vous connecter à une base locales (pour maintenance seulement) ou sur annuler pour abandonner", vbYesNoCancel, "Avertissement connexion:") = vbYes Then
       GoTo retour
       Else
         If strBaselocale <> "" Then
          donnees_locales
         Else
        MsgBox "Aucune Base disponible, réessayer lorsque le réseau sera connecté"
          DoCmd.Quit
     
           End If
        End If
    End If
     
     
     
    DoCmd.Close
    End Sub
    si ma base résau est présente il s'y connecte pas de pb
    par contre si elle n'est pas dispo j'ai directement la box comme quoi ma base locale n'est pas dispo alors qu'elle y est?
    Où est l'erreur? moi je trouve pas!!
    merci encore

  18. #18
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    Si la fonction Dir s'exécute avec succès, elle renvoie le nom du fichier :
    "copie de Eleves SEGPA données.mdb" ou "Eleves segpa données.mdb"

    Si elle échoue, elle renvoie une chaîne vide ("").
    Si le chemin n'existe pas, il y a une erreur d'exécution (d'où le On Error Resume Next),
    et la variable strBaseReseau ou strBaselocale reste inchangée.

    Le chemin vers la base locale est mal orthographié
    strBaselocale = Dir("C\Program Files\gestion SEGPA\Eleves segpa données.mdb")
    Il manque : entre C et \
    strBaselocale = Dir("C:\Program Files\gestion SEGPA\Eleves segpa données.mdb")
    Je mettrai l'étiquette "retour:" plus haut pour l'option réessayer.
    J'ai modifié un peu le code pour tenir compte des trois options possible (Oui/Non/Cancel)
    Code vb : 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
    34
    35
    36
    Dim strBaseReseau As String
    Dim strBaselocale As String
    Dim intChoix As Integer
     
    retour:
    strBaseReseau = ""
    strBaselocale = ""
     
    On Error Resume Next
    'strBaseReseau = Dir("\\Serveur00\segpa\Administration\Gestion SEGPA\Eleves SEGPA données.mdb")
    strBaseReseau = Dir("C:\Program Files\gestion SEGPA\copie de Eleves SEGPA données.mdb")
     
    strBaselocale = Dir("C:\Program Files\gestion SEGPA\Eleves segpa données.mdb")
     
    On Error GoTo 0
     
    If strBaseReseau <> "" Then
       donnees_reseau
    Else
       intChoix = MsgBox("La base réseau ne peut être jointe. Vérifier votre connexion réseau. Cliquez sur Oui pour réessayer, sur non pour vous connecter à une base locales (pour maintenance seulement) ou sur annuler pour abandonner", vbYesNoCancel, "Avertissement connexion:")
       If intChoix = vbYes Then
          GoTo retour
       ElseIf intChoix = vbCancel Then
          GoTo fin
       Else
          If strBaselocale <> "" Then
             donnees_locales
          Else
             MsgBox "Aucune Base disponible, réessayer lorsque le réseau sera connecté"
             DoCmd.Quit
          End If
       End If
    End If
     
    fin:
    DoCmd.Close
    Bon courage

  19. #19
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    merci pour les explications
    ca fonctionne parfaitement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Code permettant de lier automatiquement des tables
    Par benjamin002 dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/02/2010, 15h27
  2. [Système]Lier automatiquement certaines tables
    Par mooh91 dans le forum VBA Access
    Réponses: 5
    Dernier message: 04/04/2007, 19h03
  3. Réponses: 18
    Dernier message: 14/12/2006, 09h10
  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