Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
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 21/06/2007, 11h26   #1
Membre régulier
 
Inscription : juillet 2004
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 209
Points : 94
Points : 94
Envoyer un message via ICQ à Faro Envoyer un message via MSN à Faro
Par défaut Table liée

Bonjour,

Alors avant de sortie l'artillerie lourde, j'ai éplucher plusieurs posts ici, mais je n'arrive a rien faire fonctionner, alors je vais préciser ma demande ici

J'ai une structure simple, une base de donnée "Front" qui contient les formulaire, et dans un répertoire DATA, les données de la base dans un autre fichier access.

Alors avec les liaisons, cela fonctionne très bien, c'est parfait ... sauf que le petit logiciel est prévu pour être déplacer d'un PC a l'autre.

Il garderons la même structure, mais seront dans un répertoire parent différents. Exemple (c:\BDD et sur un autre PC c:\documents).

J'ai bien trouver des codes VBA (car j'ai l'impression qui est impossible de faire sans) mais je n'arrive a rien faire fonctionner ...

Alors si une ame charitable serait pret a me donner une démarche a suivre ... je suis prenneur

Faro
Faro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 11h35   #2
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 903
Points : 9 903
Envoyer un message via Skype™ à Domi2
Bonjour,

As-tu lu ceci ?

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
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 11h53   #3
Membre régulier
 
Inscription : juillet 2004
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 209
Points : 94
Points : 94
Envoyer un message via ICQ à Faro Envoyer un message via MSN à Faro
J'ai bien lut mais je n'y est pas trouvé la réponse *va rerelire pour être sur*

En fait, j'aimerais que cela soit transparent pour l'utilisateur. Pour simplifier, vu que la structure est la même, qu'il place son dossier contenant les bases sur une clef USB, sur son portable ou sur son PC, cela doit revenir au même, il ne doit pas faire de manipulation ...

Faro

EDIT : il parle bien d'une liaison en VBA des tables, mais j'avoue ne pas savoir comment mettre en place le script inscrit par rapport a mon problème ...
Faro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 13h09   #4
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 233
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 233
Points : 9 903
Points : 9 903
Envoyer un message via Skype™ à Domi2
Re,

Citation:
En fait, j'aimerais que cela soit transparent pour l'utilisateur. Pour simplifier, vu que la structure est la même, qu'il place son dossier contenant les bases sur une clef USB, sur son portable ou sur son PC, cela doit revenir au même, il ne doit pas faire de manipulation ...
Très difficile... Enfin, difficile n'est peut-être pas le mot approprié. Pour pouvoir recréer des attaches correctes, il faut connaître le chemin complet du répertoire qui contient les données...

C:\Documents... ou D:\Documents... c'est pas du tout pareil...

Maintenant, si la structure des répertoires est absolument identique, ce que j'entend par là c'est que sur les PC, le répertoire est systématiquement le même, sur les portables, il est différent mais toujours identique, etc... tu peux faire un formulaire de choix qui s'affiche au lancement de l'application, qui laisse le choix du type de connection à l'utilisateur.

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
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 17h47   #5
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 742
Points : 8 742
Salut,

si tu laisse la bdd Dorsale dans le même répertoire que la base Frontale cela est possible :

Fonctions permettant de liéer les tables :
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
Function LierTables(strChmFichier As String)
'---------------------------------------------------------------------------------------
' Procédure      : Function ==> LierTables
' Auteur         : Dolphy35           http://dolphy35.developpez.com/
' Commentaires   : Permet de remettre les liaisons en fonction du chemin sélectionné
' Lien vers Faq  : néant
'---------------------------------------------------------------------------------------
'
    'Déclaration des variables
    Dim dbBase As DAO.Database
    Dim tbdTables As DAO.TableDef
 
    'Instancie la base courrante
    Set dbBase = CurrentDb
 
    '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
            'Redéfini la propriété connect de la table avec la nouvelle base
            tbdTables.Connect = ";DATABASE=" & strChmFichier
            'Remet à jour la liaison de la table
            tbdTables.RefreshLink
        End If
 
    Next tbdTables
 
    'Liberation des variables
    dbBase.Close
    Set dbBase = Nothing
    'Affiche Message
    MsgBox ("mise à jour terminée")
 
End Function
appel de la fonction de l'ouverture de ta bdd (Autoexec ou dans l'évenement sur ouverture du Form D'ouverture) :
Code :
LierTables(CurrentProject.Path & "\maBddFrontale.mdb")
ensuite si comme tu dis que la bdd voyage beaucoup quel est l'intérêt d'avoir scinder la base ?

Dolphy

ps: la bdd Frontale doit impérativement être dans le même répertoire + Active le réfrence Microsoft DAO 3.x Object Library
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 18h36   #6
Membre confirmé
 
Inscription : juin 2006
Messages : 238
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 238
Points : 202
Points : 202
Bonjour,

Selon moi tes utilisateurs auront des difficultés car les périphériques auront souvent des lettres différentes sur les PC de bureau et autres portables qu'ils utilisent (ex :si un portable est équipé d'un lecteur de cartes la clef USB n'aura pas la même lettre que sur un autre portable qui n'a pas ce lecteur). Le chemin d'accès de ta base sera donc souvent différent, d'où impossibilité de transparence pour l'utilisateur.

Bonne journée.
javelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 19h16   #7
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 742
Points : 8 742
Salut javelot69,

Mon code le permet si la bdd dorsale et frontale se situent sur le répertoire, à chaque démarrage de la bdd frontale elle remet les liaisons nickel. d'où ma question à Faro pourquoi faire une bdd scindée ?

Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 19h24   #8
Membre confirmé
 
Inscription : juin 2006
Messages : 238
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 238
Points : 202
Points : 202
Salut Dolphy,

J'avais compris ton code dans ce sens.

J'avais aussi supposé que la base dorsale pouvait se trouver dans un sous-répertoire, d'où difficultés ... La vraie question est effectivement de comprendre pourquoi cette base est fractionnée.
javelot69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 19h33   #9
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 742
Points : 8 742
Citation:
Envoyé par javelot69
Salut Dolphy,

J'avais compris ton code dans ce sens.

J'avais aussi supposé que la base dorsale pouvait se trouver dans un sous-répertoire, d'où difficultés ... La vraie question est effectivement de comprendre pourquoi cette base est fractionnée.
je suis du même avis
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 09h14   #10
Membre régulier
 
Inscription : juillet 2004
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 209
Points : 94
Points : 94
Envoyer un message via ICQ à Faro Envoyer un message via MSN à Faro
Oula oula, ca s'active juste au moment ou un client perd sont serveur, désolé de pas avoir put vous répondre.

Alors déjà la raison de cette séparation :

Je veut pouvoir mettre a jour l'applicatif (mes formulaires, état et requêtes) sans toucher au table (qui, comme les infos a rentrer sont parfaitement qualibré, ne changera pas).

En gros je veut pouvoir faire des MAJs sans passer par l'étape de la récupération des données.

Pour le moment, ma base "applicatif" est a la racine d'un répertoire (qui peut varié) et ma base "données" est dans un sous répertoire mais toujours le même. Je peut donc parfaitement les placer dans le même répertoire, le sous répertoire était la pour une question de confort.

Je pense donc que le code de Dolphy35 doit correspondre a ma demande, je vais tester cela cette après midi, je vous tiens au courant

Faro
Faro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2007, 16h27   #11
Membre régulier
 
Inscription : juillet 2004
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 209
Points : 94
Points : 94
Envoyer un message via ICQ à Faro Envoyer un message via MSN à Faro
Et hop, je déterre mon problème, j'ai enfin le temps de m'y mettre !

Alors, joie et bonheur, le code fonctionne (mmmaarrccciii) ... Mais

Mais quand je le lance dans le formulaire accueil (formulaire en ouverture auto au démarrage de la base) j'ai tout d'abord un message d'erreur.

Le fonctionnement est le suivant (après un déplacement de la base) :

1. Access 2007 s'ouvre et check les tables liée, et trouve pas la base (fichier introuvable)
2. Il ouvre le premier formulaire, actualise les liaisons avec le script
3. On ferme Access, on ouvre access, ca fonctionne

Alors, je me suis dit de manière fourbe que j'allais placer mon code dans une Macro AutoExec ... et ca marche pas ...

Je renomme ma Macro Pouet et l'appelle en lançant la base et ... même message d'erreur, la macro Pouet l'existe pas ... alors qu'elle existe bien propre dans mon module 1 (ou est la fonction) ....

Alors je sais que l'on dérive du sujet mais ... une idée ?

PS : petit check, quand je lance ma macro "a la main" tout fonctionne correctement, les tables se placent correctement
Faro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 00h58   #12
Invité régulier
 
Inscription : décembre 2004
Messages : 46
Détails du profil
Informations personnelles :
Âge : 69
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : décembre 2004
Messages : 46
Points : 9
Points : 9
Bonjour,

Je ne sais si je peux ainsi m'insérer dans votre discussion, mais j'ai en partie le même problème que Faro avec toutefois certainement bien moins d'expérience. J'ai été très interéssé par ce qu'a préconisé Dolphy35 mais pour le mettre en application c'est pour moi un peu du charabia.

J'ai 2 tables liées remplies par 2 personnes différentes. Ces deux bases de données se trouvent bien sûr dans le même répertoire C:/Mes documents/ ce qui me paraissait simple. Seulement dans une association les gens actifs changent souvent et il me faut répéter et réexpliquer le pourquoi de cette disposition alors que sous XP le dossier "Mes documents" est totalement différent d'un ordinateur à l'autre.

Est ce que ta méthode Dolphy35 me permettrait de régler ce pb ? Et si oui ou mettre le code VBA ?

j'ai mu le tuto conseillé par Domi2 mais je n'y ai pas trouvé la réponse à mon soucis.
Phyl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 01h13   #13
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 742
Points : 8 742
Salut,

le code laissé plus peut te servir dans ton cas.
en fait le principe est que la dorsale se trouve dans le même répertoire que la bdd voir dans un sous-dossier, de ce fait il est possible par code de récupérer le chemin courant de la bdd et donc de définir le liaisons à l'ouverture

@Faro => je ne comprend pas très bien ton problème


Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 08h28   #14
Membre régulier
 
Inscription : juillet 2004
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 209
Points : 94
Points : 94
Envoyer un message via ICQ à Faro Envoyer un message via MSN à Faro
Et bien en gros, avec ton code, j'ai un message d'erreur au démarrage de ma base accès a chaque déplacement des bases.

En effet, accès ne trouve plus la base lié (ce qui est logique).

J'aimerais donc lancer ton code non pas au premier formulaire, mais au lancement de la base en fait

Faro
Faro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 09h30   #15
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 742
Points : 8 742
Citation:
Envoyé par Faro
Et bien en gros, avec ton code, j'ai un message d'erreur au démarrage de ma base accès a chaque déplacement des bases.

En effet, accès ne trouve plus la base lié (ce qui est logique).

J'aimerais donc lancer ton code non pas au premier formulaire, mais au lancement de la base en fait

Faro
2 solutions :

1-Soit tu créer un formulaire intermédiaire pour éxécuter ce code sachant que ce form ne devra pointer sur aucune table liée.

2-Tu met le code dans une Fonction que tu appel par une macro, tu appel cette macro Autoexec, cette macro sera automatiquement exécutée au démarage de la bbd sauf lors de l'appuit de shift lors de l'ouverture de la bdd.

espérant t'avoir répondu

Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 15h41   #16
Membre régulier
 
Inscription : juillet 2004
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 209
Points : 94
Points : 94
Envoyer un message via ICQ à Faro Envoyer un message via MSN à Faro
Autoexec ne fonctionne pas (access 07 ?) je vais tenter de mettre en splash screen alors

Faro
Faro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 00h25   #17
Invité régulier
 
Inscription : décembre 2004
Messages : 46
Détails du profil
Informations personnelles :
Âge : 69
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : décembre 2004
Messages : 46
Points : 9
Points : 9
Citation:
Envoyé par Dolphy35
Salut,

le code laissé plus peut te servir dans ton cas.
en fait le principe est que la dorsale se trouve dans le même répertoire que la bdd voir dans un sous-dossier, de ce fait il est possible par code de récupérer le chemin courant de la bdd et donc de définir le liaisons à l'ouverture

Dolphy
Merci Dolphy35 j'essaierais ce code en début de semaine prochaine. Je suis en ce moment loin de chez moi

En suivant ton entretien avec Faro je note que ce code est à mettre dans chaque formulaire susceptible d'utiliser le lien avec la table seconde. Si c'est cela c'est facile.

Je vous tiendrais bien sûrau courant
Phyl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 10h52   #18
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 742
Points : 8 742
Citation:
Envoyé par Faro
Autoexec ne fonctionne pas (access 07 ?) je vais tenter de mettre en splash screen alors

Faro
Non cela n'a rien avoir avec A07, la macro Autoexec fonctionne, esseye le splash en plus cela fait pro

Citation:
Envoyé par phyl
En suivant ton entretien avec Faro je note que ce code est à mettre dans chaque formulaire susceptible d'utiliser le lien avec la table seconde. Si c'est cela c'est facile.
Le mise à jour se réalise au début et pour toutes les tables


Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 15h32   #19
Membre régulier
 
Inscription : juillet 2004
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 209
Points : 94
Points : 94
Envoyer un message via ICQ à Faro Envoyer un message via MSN à Faro
Ouep, faire la liaison a chaque formulaire, c'est violent

Je suis passé par splash, sur que c'est mieux

Merci beaucoup en tout cas !
Faro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 00h48   #20
Invité régulier
 
Inscription : décembre 2004
Messages : 46
Détails du profil
Informations personnelles :
Âge : 69
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : décembre 2004
Messages : 46
Points : 9
Points : 9
Citation:
Envoyé par Faro
Je suis passé par splash, sur que c'est mieux
Me voilà de retour et bien sûr mon essai n'a pas marché. Je ne sais ce que veux dire Faro par splash screen. ???

J'ai donc mis ce code dans la formulaire de démarrage (Menu ou Switchboard) espérant que cela fonctionnerait. Il me donne toujours une erreur de chemin. J'ai fais donc un test sur un seul formulaire et là aussi même résultat.

Citation:
Envoyé par Dolphy
2 solutions :
1-Soit tu créer un formulaire intermédiaire pour éxécuter ce code sachant que ce form ne devra pointer sur aucune table liée.

2-Tu mets le code dans une Fonction que tu appelles par une macro, tu appelles cette macro Autoexec, cette macro sera automatiquement exécutée au démarage de la bbd sauf lors de l'appuit de shift lors de l'ouverture de la bdd.
Dolphy donne d'autre solution dont la 2ieme. je sais faire une macro j'en ai fait plusieurs pour des mises à jour automatique. Elles sont lancées par un clic sur le menu. Mais je ne comprends pas la phrase "Tu mets le code dans une Fonction que tu appelles par une macro et notamment "Fonction"

Enfin comme dans cette bbd j'ai mis des photo d'identités (dans le chemin courant) est-ce que ce chemin sera modifié lui aussi ??
Phyl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h10.


 
 
 
 
Partenaires

Hébergement Web