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

VBA Access Discussion :

Liaison base frontale/dorsale


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut Liaison base frontale/dorsale


    J'ai suivi le tutoriel à cette adresse et je me suis arrété à la fin du chapitre VIII. Ouverture de la base Frontale avec test des liaisons.

    J'obtien une erreur 0 quand je lance ma base frontale.
    D'où cela provient-il ?

    Merci
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pourrait-on avoir le message de l'erreur, car on ne les connait pas tous par coeur

    Starec

  3. #3
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Voilà l'erreur :


    Cela n'apporte pas bien de précision ... enfin je ne pense pas
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  4. #4
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Je pense que voir mon code vous sera plus utile, je vous fait donc parvenir ma base de données.
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  5. #5
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Tu as des erreurs en pagaille

    1) La table tblAdmin doit se trouver dans la dorsale et liée, et non dans la frontale

    2) Dans chaque module, après Option Compare Database, tu mets Option Explicit, comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Compare Database
    Option Explicit
    3) Si tu compiles après ça, tu auras des erreurs. En premier, tu dois cocher la référence à DAO (voir le tutoriel), puis tu auras un ou deux noms de variables à corriger.

    4) Il y'a une erreur de nom, sauf erreur ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Boucle parcourant la base de données IEDV
        For Each tbdTables In dbBase.TableDefs
            'Test pour savoir si c'est une table liée
            If tbdTables.Attributes And dbAttachedTable Then
                rst.AddNew 'Ajoute un enregistrement
                rst!TablesAttachees = tbdTables.Name 'Ajoute la table dans le champ
                rst.Update 'Mise à jour
            End If
        Next tbdTables
    Tu as rst!tableattachee, ce qui ne correspond pas au champ de ta table

    5) Enfin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    While Not rst.EOF
            'Nous définissons l'objet TableDefs en fonction de la table stockée dans tblTablesAttachees
            With dbBase.TableDefs(rst!TablesAttachees.Value)
                'Défini la propriété connect da le table avec la nouvelle base
                .Connect = ";DATABASE=" & strChmFichier
                'On remet à jour la liaison de la table
                .RefreshLink
            End With
            ' on efface l'enregistrement de la table
            rst.Delete
            'On passe à l'enregistrement suivant
            rst.MoveNext
        Wend
    La première ligne, c'est rst.EOF et non rst.BOF.

    Ca devrait déjà mieux aller.

    Redis-nous.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  6. #6
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    1) La table tblAdmin doit se trouver dans la dorsale et liée, et non dans la frontale
    Je met donc la table tblAdmin dans la dorsale et je l'a lie dans la frontale. Dois je faire pareil pour la table tblTablesAttachees ?


    2) J'ai mis Option Explicit comme vous me l'avez indiqué.

    3) J'ai coché DAO dans outils/references

    Citation Envoyé par Domi2 Voir le message
    4) Il y'a une erreur de nom, sauf erreur ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Boucle parcourant la base de données IEDV
        For Each tbdTables In dbBase.TableDefs
            'Test pour savoir si c'est une table liée
            If tbdTables.Attributes And dbAttachedTable Then
                rst.AddNew 'Ajoute un enregistrement
                rst!TablesAttachees = tbdTables.Name 'Ajoute la table dans le champ
                rst.Update 'Mise à jour
            End If
        Next tbdTables
    Tu as rst!tableattachee, ce qui ne correspond pas au champ de ta table
    il s'agit bien de rst!tableattachees

    5) j'ai corrigé mon erreur en remplacant BOF par EOF.


    Merci beaucoup pour votre aide, j'attend une réponse pour la table tblTablesAttachees et je vous tiens au courant par la suite de ce qu'il se passe
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  7. #7
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Je met donc la table tblAdmin dans la dorsale et je l'a lie dans la frontale. Dois je faire pareil pour la table tblTablesAttachees ?
    Non, il faut la laisser dans la dorsale.

    Tu as compilé ton code ? Plus d'erreurs ?

    Pour le rst!table... Il y'en a un de faux. Il faut bien contrôler, car tu n'auras aucune erreur à la compilation.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  8. #8
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    Re,

    Non, il faut la laisser dans la dorsale.

    Tu as compilé ton code ? Plus d'erreurs ?

    Pour le rst!table... Il y'en a un de faux. Il faut bien contrôler, car tu n'auras aucune erreur à la compilation.

    Domi2

    Ok, donc j'ai mis la table tbladmin et tblTablesAttachees dans la table principale et nul part ailleur.

    Dans le tuto, des fois il utilise tblTablesAttachees comme ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Vide la Tables contenant la liste des tables attachées
        DoCmd.RunSQL "DELETE * FROM tblTablesAttachees"
    et des fois il utilise TablesAttachees :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Boucle Parcourant toutes les tables de la Bdd en cours
        For Each tbdTables In dbBase.TableDefs
            
            'Teste l'attribut de la table pour savoir si c'est une table liée
            If tbdTables.Attributes And dbAttachedTable Then
                rst.AddNew                              'Ajoute un enregistrements
                rst!TablesAttachees = tbdTables.Name    'Ajoute la table dans le Champs
                rst.Update                              'Mise à jour
            End If
           
        Next tbdTables

    est-ce normal ?



    J'ai essayé de lancer mon application, j'obtient cette erreur :
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  9. #9
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Sorry, je me suis trompé, j'ai été trop vite.

    La table tbltablesAttachées doit être dans la base frontale.

    Pour ta deuxième question, une fois il est fait référence à la table, une fois au champ. Oui, c'est normal.

    Pour le message d'erreur, je pense que tu as oublié de lier la table tblAdmin après l'avoir mise dans la dorsale.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  10. #10
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Je te remercie de nouveau pour ton aide

    Alors j'ai mis la table tbltableattachees dans la frontale sans la liée et j'ai mis la table tblAdmin dans la dorsale et je l'ai lié dans la frontale.

    maintenant lors du lancement de la base frontale, j'obtient de nouveau ce message :

    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  11. #11
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    As-tu compilé ton code ?

    Dans l'éditeur VBA, menu Débogage ==> Compiler

    Tu n'as plus aucune erreur de code ?

    Peux-tu coller l'entier du code de la fonction liertable ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  12. #12
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Non, je ne peut pas, Compiler est grisé
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  13. #13
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Tu peux poster un nouveau zip de ta base ?

    domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  14. #14
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Voilà le code :

    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
    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
    Option Compare Database
    Option Explicit
     
    Function LierTable(strChmFichier As String) As Boolean
     
    'Déclaration des variables
        Dim dbBase As DAO.Database
        Dim tdbTables As DAO.TableDef
        Dim rst As DAO.Recordset
     
    'Instancie la base courrante
        Set dbBase = CurrentDb
     
    'Charge la table dans le recordset rst
        Set rst = dbBase.OpenRecordset("tblTablesAttachees", dbOpenDynaset)
     
    'Inhibe les messages d'alertes
        DoCmd.SetWarnings False
     
    'Vider la table contenant les tables qui sont attachées
        DoCmd.RunSQL "DELETE * FROM tblTablesAttachees"
     
    'Boucle parcourant la base de données IEDV
        For Each tdbTables In dbBase.TableDefs
            'Test pour savoir si c'est une table liée
            If tdbTables.Attributes And dbAttachedTable Then
                rst.AddNew 'Ajoute un enregistrement
                rst!TablesAttachees = tdbTables.Name 'Ajoute la table dans le champ
                rst.Update 'Mise à jour
            End If
        Next tdbTables
     
        'On met à jour le recordset après l'ajout des tables
        rst.Requery
     
        'On test la position du pointeur
        If Not rst.BOF Then
            rst.MoveFirst   'pointeur sur le premier enregistrement
        End If
     
        'Mise à jour des liaisons des tables de la table tblTablesAttachees
        'On parcourt tant que l'on arrive pas sur le dernier enregistrement
        While Not rst.EOF
            'Nous définissons l'objet TableDefs en fonction de la table stockée dans tblTablesAttachees
            With dbBase.TableDefs(rst!TablesAttachees.Value)
                'Défini la propriété connect da le table avec la nouvelle base
                .Connect = ";DATABASE=" & strChmFichier
                'On remet à jour la liaison de la table
                .RefreshLink
            End With
            ' on efface l'enregistrement de la table
            rst.Delete
            'On passe à l'enregistrement suivant
            rst.MoveNext
        Wend
     
        'on libère les variable
        dbBase.Close
        Set dbBase = Nothing
        Set rst = Nothing
        'On active les messages d'alertes
        DoCmd.SetWarnings True
        ' on affiche un message
        MsgBox (" La mise à jour s'est correctement déroulée")
     
        'met la fonction liertable à vrai
        LierTable = True
     
    End Function

    Voilà ma base aussi :
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  15. #15
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Tu n'as pas mis de lien.

    Et la fonction est ok, ça vient d'ailleurs.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  16. #16
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Oui, cela n'avait pas marché. J'ai supprimer la première base que j'avais mis.
    C'est bon maintenant.
    Je l'ai regardé plusieurs fois ma fonction . . . il me semble avoir tout corrigé oui
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  17. #17
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Dans ta table tblTablesAttachees, renomme ton champ :

    TableAttachees ==> TablesAttachees

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  18. #18
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Ah oui j'avais pas fait attention

    Le message d'erreur reste le même.
    Lorsque vous modifier, cela change quelque chose ?
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  19. #19
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    C'est tout ce que j'ai modifié et chez moi, ça fonctionne.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  20. #20
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Si vous l'exécuté une seconde fois, cela marche toujours ?
    Moi cela a marché une seule fois.

    Sinon j'ai bien seulement modifier le "s" qui manquait mais ca ne change rien.
    Bizarre

    Toujours cette erreur n°0

    Merci de votre aide en tout cas
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Mise à jour Base frontal/Dorsale Multiuser
    Par galak007 dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/12/2010, 21h57
  2. publipostage avec base frontale-Dorsale
    Par ladonnue dans le forum Word
    Réponses: 0
    Dernier message: 07/12/2007, 14h43
  3. Base Frontale / Dorsale
    Par nevil dans le forum IHM
    Réponses: 6
    Dernier message: 17/09/2007, 14h26
  4. Base frontale-dorsale et problèmes réseaux
    Par Kloun dans le forum Access
    Réponses: 2
    Dernier message: 16/02/2007, 15h58
  5. Réponses: 3
    Dernier message: 20/11/2006, 14h16

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