|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
Je refais un nouveau sujet afin qu'une suite puisse m'être donné. Le sujet précédent étant maintenant résolu pour Faro.
Je reprends donc quelques éléments du sujet Table liée Citation:
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:
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 ?? |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 106 ![]() |
Salut,
Pour la fonction : tu créer un module et tu y ajoute le code : Code :
tu appel cette macro "Autoexec" Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
||
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
Désolé Dolphy je n'y suis pas arrivé,
J'ai créé le module 1 et j'ai placé le code appeler TableLier comme indiqué sur le post précédent. J'ai créé la macro Autoexec, mais au démarrage Access me signale une erreur: impossible de trouver le nom TableLier dans l'expression ... J'ai fait les essais aussi en changeant le nom de la fonction TableLier avec celui de tutu () en vain. Je suis plutôt nul, car je ne vois pas l'erreur; |
|
|
00
|
|
|
#4 |
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 106 ![]() |
Salut phyl,
tu n'aurais pas oublié les parenthèses dans l'appel de ta fonction dans la Macro Autoexec ? Sinon je t'ai fait un exemple, dans le zip tu as 3 bases (1 Dorsale et 2 Frontales), dans les bases frontales tu en a une qui met à jour les liaisons avec la Macro Autoexec et l'autre qui ouvre un SplashScreen pour mettre à jour les liaisons. Dé-zip la pièce jointe dans le même dossier et ouvre les bdd En espérant que cela va t'aider Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
Merci Dolphy
Effectivement cela fonctionne maintenant parfaitement. J'avais pourtant fait plusieurs essais, mais en fait le deuxième code que tu as mis dans l'exemple donne le nom de la table liée et je pense que mon erreur venait de là. Bref, maintenant c'est parfait. Je vais faire moi aussi un SplashScreen avec le logo de l'association (2000 membres). Il me reste à mettre à jour le champ d'adresse ("photo") de la table liée (CA et Délégué) une trentaine de personnes et pour lesquels j'ai mis les photos d'identité. Ne pourrais-je récupéré l'adresse que ce module a trouvé ? Je pourrais ainsi exécuter une mise à jour automatique du champ "photo" avec une macro. Avec ta méthode, je m'aperçois que j'utilise à peine quelques pour cent des possibilités d'Access. |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
Je reviens vers toi Dolphy,
Il me reste à mettre à jour le champ d'adresse du répertoire ("photo") de la table liée Comment pourrais-je récupérer l'adresse du répertoire que le module "mdlLiaisonTables" a trouvé ? Je pourrais ainsi exécuter une mise à jour automatique du champ "photo" avec une macro Merci de ton aide |
|
|
00
|
|
|
#7 | |||||||||||
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 106 ![]() |
Salut Phyl,
Je me suis penché sur ton cas je t'ai fais une petite base exemple Explications : La base est placé sur un répertoire C:\XXX celui-ci peut être différent car l'ensemble de ta base est portable. Donc je suis partit du principe que la bdd Dorsale ainsi que les images se trouvent dans des sous dossier du répertoire C:\XXX => Citation:
à l'ouverture du Splash on lance le timer : Code :
Code :
Les fonctions : 1 - La fonction GetLinkedDBName permet de récupérer le chemin des tables liées : Code :
Comme paramètre pour cette fonction, on lui donne le nom de la table à tester.2 - La Fonction LierTables permet de réconfigurer la liaison des tables avec la dorsale : Code :
Pour cette fonction le paramètre est le chemin de la base Dorsale, on va se servir de la bdd Frontale pour récupérer le chemin et ajouter le sous dossier \Serveur\ puis le nom de la bdd Dorsale.3 - La Fonction MAJ_Photos permet de modifier le chemin dans le champ de la table : Code :
cette fonction possède trois paramètres :A-Le nouveau chemin (sur le même principe que les tables liées) B-Le nom de la table à modifier. C-Le nom du champ possédant le chemin des photos dans cette fonction on récupère le nom de l'image avec son extension puis on lui met avant le nouveau chemin et ceci pour tous le enregistrements. j'ai amélioré les fonctions par rapport à la dernière fois Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
|||||||||||
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
C'est super sympa cela Dolpy je vais me pencher sur cette option dès ce soir.
J'étais parti sur une autre option en cherchant à séparer dans la table le nom de l'image du chemin. Mais j'en étais à une vrai usine à gaz. Avec ce code (je n'ai pas encore tout compris) aussi bien détaillé et expliqué cela devrait aller et me permettre de le comprendre. Merci ... Merci, je te tiens au courant bien sûr (Site association http://www.cmt-france.net - site perso http://www.depollunet.net) |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
Bonjour Dolphy
Tout d'abord un grand merci, c'est génial comme principe, mais j'avais encore un problème que je n'ai pas su résoudre. En effet, il peut arriver que le champs adresse "Photo" ne soit pas renseigné. Dans ce cas cela m'indique une erreur. Ensuite chacune des 2 tables sont liées l'une à l'autre cela fonctionne parfaitement pour la base ayant les photos car elle est liée par un seul champ l'autre c'est plus compliqué car il y a 3 champs et je ne sais pas comment faire... Table comportant les photos : En suivant tes précieux conseils, j'ai d'abord réalisé quelques modifications car le fichier dorsal et frontal sont dans le même répertoire. La modification était donc assez facile. En reportant les modules sur ma base ainsi qu'en reportant le fichier Splasch j'ai effectué les modifications des données champs et base, sur la "procédure évenementielle" permettant la commande des modules lorsque la base change de répertoire. Avec l'erreur et donc l'arrêt de l'ouverure de la Bdd j'ai pas mal galéré avant de comprendre d'où cela venait. J'ai essayé dans le module "mdlModificationChamp" de mettre en place une condition "If me!testPhoto > 0 Then ..." au niveau de la boucle de modification du champ testPhoto ("While Not rst.EOF" ....) mais je n'y suis pas arrivé. En fait j'ai rendu ce champ à renseigner obligatoirement et j'ai mis une image générique en remplacement de photo d'identité indisponible. Ainsi cela marche très bien, mais j'aurais aimé savoir ce que j'aurais du faire. Table principale : Problème de 3 champs en liaison avec la table photos .... Amitiés |
|
|
00
|
|
|
#10 | ||
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 106 ![]() |
Salut Phyl,
tu étais pas loin pour la condition si champ vide sauf que cette synthaxe est utilisé pour contrôler un control du formulaire activé. sauf que nous nous utilisons un recordset, il faut utiliser cette synthaxe : si le champ de l'enregistrement ayant le pointeur n'est pas égale à "" (pour vide) on éxécute le code précédent, par contre il ne faut pas mettre le movenext dans la if, voici la boucle modifiée : Code :
peux-tu donner plus d'explications Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
||
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
Tu es super,
Quand je précise que j'ai 3 champs, c'est en fait moi qui me suis planté j'ai 3 tables liées. Sur 2 Bdd. J'ai testé dans la procédure évènementielle du formulaire Splash chacune des tables par les codes : If Not (GetLinkedDBName("Membres CMT") = CurrentProject.path & "\AssoCMT.mdb") Then ..... avec pour chaqcun le champ et la table mais cela plante et me donne une erreur notament au changement de Bdd Merci |
|
|
00
|
|
|
#12 | |
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 106 ![]() |
Salut,
Citation:
es ce que le schéma correspond ? Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
|
|
00
|
|
|
#13 | ||
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
Je me suis certainement encore mal exprimé.
J'ai: - une base Frontale (2500 noms) dont certains champs (3) sont liés avec la Bdd Dorsale1 (comportant les photos). - la Dorsale1 elle est liée à la frontale pour le choix des membres (un seul champ) - la Dorsale 2 est en liaison avec la frontale (un champ) et la Dorsale 1 (3 champ) J'ai donc établi ce code pour la Bdd Dorsale 2 Code :
Et bien sûr j'ai une erreur dès le démarrage |
||
|
|
00
|
|
|
#14 | ||
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 106 ![]() |
Salut,
petite question as-tu réllement besoin d'avoir 2 Dorsales ? sinon le code permet de mettre à jour toutes les tables en 1 seule fois, je m'explique ce bout de code de la fonction Lier_Tables permet de parcourir toutes les tables de la bdd en question : Code :
Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
||
|
00
|
|
|
#15 |
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
A mon avis c'est parfait ainsi.
En effet, la Bdd Frontale (Assocmt.mdb) est tenu à jour par une seule personne qui gère les membres de l'association. Cependant elle va chercher des champs mis à jour dans la Dorsale1. La Bdd dorsale1 est tenue à jour par une autre personne qui gère les délégués des régions à partir des données de la frontale. Elle se nomme DelCaCmt.mdb. Ces deux bases sont liées entre elles. Celui qui gère la dorsale1, ne peut inscrire un délégué s'il n'est pas à jour de cotisation (notion prise dans la Bdd Frontale) etc... Celui qui gère les membres ne peut lister les membres d'une même région (4 à 8 départements) s'il n'a pas à jour la Bdd Dorsale etc... Quant à le seconde dorsale, elle a très peu d'importance, elle permet à chaque délégués de noter ces propres informations qu'on ne peut marquer sur un fichier officiel. En fait cette Bdd ne voyage pas elle reprend les informations des deux principales. Donc la mise à jour de l'adresse pourra se faire facilement une seule fois par le menu Option Gestionnaire des tables liées notion que je peux ressortir sur la barre d'outil de la Bdd. Encore merci, je teste le code pour les deux Bdd Principale et je te tiens au courant Au fait ce dernier code il se met sur les deux tables ? et où ?? Je vais faire des essais |
|
|
00
|
|
|
#16 | |
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 106 ![]() |
Salut Phyl,
Citation:
Comme je te disais cette fonction lie toutes les tables liées de la Frontale, donc si tu as 2 dorsales, il faut adapter ce code pour chaque tables. C'est possible de le faire, c'est pour cela que je te demandais si tu voulais absoluent 2 Dorsales ? Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
|
|
00
|
|
|
#17 |
|
Invité régulier
![]() Inscription : décembre 2004 Messages : 46 ![]() |
Merci beaucoup Dolphy,
Maintenant tout fonctionne parfaitement. Les deux tables principales se connectent comme oil faut avec les dernières données du Code et les modifications que j'avais faites sur le code du formulaire Splach. Quant à la dorsale 2, j'avais beaucoup de soucis dans la liaison des 2 dorsale. En fait j'ai supprimé la liaison des 2 dorsales et j'ai uniquement la liaison automatisée entre une frontale et dorsale; Ainsi, tout est parfait. Merci beaucoup
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com