{Access} gérer plusieurs bases avec 1 menu gén
Résolu/Fermé
A voir également:
- {Access} gérer plusieurs bases avec 1 menu gén
- Menu déroulant excel - Guide
- Windows 11 menu démarrer classique - Guide
- Gerer les profils netflix - Guide
- Canon quick menu - Télécharger - Utilitaires
- Réinitialiser menu démarrer windows 10 - Guide
12 réponses
Salut,
L'idée est plaisante... néanmoins, les menus, reports et dialogues sont dans une base de données. Si tu veux offrir x versions différentes d'une base de données avec les mêmes formulaires, requêtes etc, tu vas devoir tout multiplier par x.
Ta base de départ, celle qui offre le choix d'une base parmi x, devrait certainement démarrer Access (une nouvelle fois) avec en paramètre le nom de la base choisie par l'utilisateur. Chacune des base choisissables par l'utilisateur devra peut-être avoir avant l'instruction de fin Démarrer Access (encore une fois!) avec en paramètre le nom de la base de départ.
Je te laisse vérifier que les bases se succèdent au lieu de s'appeler. Tu seras à même alors de construire proprement ton projet.
L'idée est plaisante... néanmoins, les menus, reports et dialogues sont dans une base de données. Si tu veux offrir x versions différentes d'une base de données avec les mêmes formulaires, requêtes etc, tu vas devoir tout multiplier par x.
Ta base de départ, celle qui offre le choix d'une base parmi x, devrait certainement démarrer Access (une nouvelle fois) avec en paramètre le nom de la base choisie par l'utilisateur. Chacune des base choisissables par l'utilisateur devra peut-être avoir avant l'instruction de fin Démarrer Access (encore une fois!) avec en paramètre le nom de la base de départ.
Je te laisse vérifier que les bases se succèdent au lieu de s'appeler. Tu seras à même alors de construire proprement ton projet.
Jean_Jacques
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
112
22 oct. 2009 à 09:38
22 oct. 2009 à 09:38
Bonjour ZEBULON,
Access fournit une fonctionnalité proche de ce que vous cherchez.
Première chose à faire : Une sauvegarde
Ensuite :
- Outils
- Utilitaire de base de sonnées
- Fractionnement d'une base de données
Résultat : 2 bases de données sont créées
- L'une contient tout ce qui n'est pas une table
- L'autre contient strictement toutes les tables
Pour de plus amples informations, saisir "fractionner" dans l'aide intuitive via la touche F1
Cordialement
Access fournit une fonctionnalité proche de ce que vous cherchez.
Première chose à faire : Une sauvegarde
Ensuite :
- Outils
- Utilitaire de base de sonnées
- Fractionnement d'une base de données
Résultat : 2 bases de données sont créées
- L'une contient tout ce qui n'est pas une table
- L'autre contient strictement toutes les tables
Pour de plus amples informations, saisir "fractionner" dans l'aide intuitive via la touche F1
Cordialement
Bonsoir,
Merci, Jean Jacques pour ta ta réponse, mais mes bases sont déjà divisées en deux. D'un coté différentes bases qui contiennent les tables (dont la structure est identique pour toutes ces bases) que je cherche à lier suivant les besoins à la base qui content les requêtes, formulaires, états et macros.
une macro ou une instruction VB sont-il une solution ?
Bonne soirée
Zébulon
Merci, Jean Jacques pour ta ta réponse, mais mes bases sont déjà divisées en deux. D'un coté différentes bases qui contiennent les tables (dont la structure est identique pour toutes ces bases) que je cherche à lier suivant les besoins à la base qui content les requêtes, formulaires, états et macros.
une macro ou une instruction VB sont-il une solution ?
Bonne soirée
Zébulon
Jean_Jacques
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
112
23 oct. 2009 à 07:00
23 oct. 2009 à 07:00
Bonjour ZEBULON,
Il y a sans doute une ou des solutions via VB ou autre, mais, à ce niveau, je ne maîtrise pas.
Dans ce cadre une visite de :
https://access.developpez.com/
Ne saurait nuire.
Bonne journée
Il y a sans doute une ou des solutions via VB ou autre, mais, à ce niveau, je ne maîtrise pas.
Dans ce cadre une visite de :
https://access.developpez.com/
Ne saurait nuire.
Bonne journée
Bonjour Blux,
Merci de l'intérêt pour la question, mais j'ai laissé tomber le problème. Je gère mes bases indépendamment les unes des autres.
Mais si quelqu'un un jour a la réponse je suis preneur.
Zébulon.
Merci de l'intérêt pour la question, mais j'ai laissé tomber le problème. Je gère mes bases indépendamment les unes des autres.
Mais si quelqu'un un jour a la réponse je suis preneur.
Zébulon.
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
13 oct. 2011 à 14:26
13 oct. 2011 à 14:26
Je viens de l'expliquer, si tes tables ont le même nom et qu'elles sont à choisir dans des bases différentes, en utilisant les attaches en vba tu pourras choisir dans quel fichier mdb tu iras taper...
Tu veux un exemple ?
Tu veux un exemple ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
Si j'en crois ton message, tu serais en mesure de résoudre mon problème!
Je résume la situation. J'ai plusieurs tables, de structures identiques (acquéreurs, lots, planning, gestion, etc...) mais situées dans des bases distinctes les unes des autres, (SCI001, SCI002, SCI003, etc...), J'ai une base d'exploitation dans laquelle se trouve : les requêtes, formulaires, états, macros.
Je désirerais savoir s'il est possible d'avoir une based'exploitation qui pourrait choisir lors de son ouverture ou par choix ultérieur sur quelle base aller choisir les tables à exploiter.
ex : tables de la SCIxxx avec des requêtes, formulaires, états, macros situés dans la base d'exploitation.
J'espère avoir été assez clair dans mes explications.
Donc, si tu as un exemple concret, je suis preneur. ;D)
Bonne soirée,
Si j'en crois ton message, tu serais en mesure de résoudre mon problème!
Je résume la situation. J'ai plusieurs tables, de structures identiques (acquéreurs, lots, planning, gestion, etc...) mais situées dans des bases distinctes les unes des autres, (SCI001, SCI002, SCI003, etc...), J'ai une base d'exploitation dans laquelle se trouve : les requêtes, formulaires, états, macros.
Je désirerais savoir s'il est possible d'avoir une based'exploitation qui pourrait choisir lors de son ouverture ou par choix ultérieur sur quelle base aller choisir les tables à exploiter.
ex : tables de la SCIxxx avec des requêtes, formulaires, états, macros situés dans la base d'exploitation.
J'espère avoir été assez clair dans mes explications.
Donc, si tu as un exemple concret, je suis preneur. ;D)
Bonne soirée,
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
17 oct. 2011 à 10:15
17 oct. 2011 à 10:15
Colle ce code sur un bouton et tu verras la liste de tes tables, avec le nom de la base à laquelle elles sont liées :
Si tu veux ensuite modifier la base de rattachement, il te suffit de modifier la propriété connect de chaque table et de faire un refreshlink :
Reste à savoir comment tu vas gérer les chemins, le plus simple étant de les stocker dans une table de ta base qui contient les requêtes, formulaires et autres mais sans la lier à aucune base. Tu iras faire ton choix via un dlookup pour modifier tes attaches, après avoir proposé de faire le choix de la base vie une liste déroulante...
Ca irait comme démarche ?
Dim Db As Database Dim Tb As TableDef Set Db = CurrentDb For Each Tb In Db.TableDefs If Left(Tb.Name, 4) <> "MSys" Then MsgBox Tb.Name & "--" & Tb.Connect End If Next
Si tu veux ensuite modifier la base de rattachement, il te suffit de modifier la propriété connect de chaque table et de faire un refreshlink :
Dim Tb As TableDef Set Db = CurrentDb For Each Tb In Db.TableDefs If Left(Tb.Name, 4) <> "MSys" Then MsgBox Tb.Name & "--" & Tb.Connect Tb.Connect = ";DATABASE=C:\mabase.mdb" Tb.Refreshlink End If Next
Reste à savoir comment tu vas gérer les chemins, le plus simple étant de les stocker dans une table de ta base qui contient les requêtes, formulaires et autres mais sans la lier à aucune base. Tu iras faire ton choix via un dlookup pour modifier tes attaches, après avoir proposé de faire le choix de la base vie une liste déroulante...
Ca irait comme démarche ?
Bonsoir,
Je viens de lire ta réponse, l'idée me parait très intéressante mais il me faudrait quelques explications supplémentaires sur la manière de procéder.
Les lignes de codes que tu m'indiquent sont à coller dans un module afin de les lier à un bouton?
Comment stocker les chemins dans une table, sous forme de liens hypertexte ou autre.
Si tu avais un petit schéma à me proposer cela serait très sympa de ta part.
Je ne suis pas un grand utilisateur de VBA.
En tous cas merci de l'intérêt porté à mon problème, je pense que tu tiens une bonne piste.
Je viens de lire ta réponse, l'idée me parait très intéressante mais il me faudrait quelques explications supplémentaires sur la manière de procéder.
Les lignes de codes que tu m'indiquent sont à coller dans un module afin de les lier à un bouton?
Comment stocker les chemins dans une table, sous forme de liens hypertexte ou autre.
Si tu avais un petit schéma à me proposer cela serait très sympa de ta part.
Je ne suis pas un grand utilisateur de VBA.
En tous cas merci de l'intérêt porté à mon problème, je pense que tu tiens une bonne piste.
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
18 oct. 2011 à 09:23
18 oct. 2011 à 09:23
En chargeant ce lien tu vas récupérer un exemple de ce qu'on peut faire :
http://www.divshare.com/download/15971236-6a4
En décompressant dans le même répertoire, tu trouveras 4 bases access :
- trois bases nommées Choix_dataSCI001, ...SCI002 et ...SCI003.mdb
- une base nommée Choix.mdb, que tu lanceras, elle t'ouvrira un formulaire avec une zone de liste où tu pourras sélectionner 3 noms. Après sélection, s'affichera le lien actuel et on te posera la question de savoir si tu veux mettre à jour les liens entre les deux bases.
Les noms des trois bases sont dans la table, et je prends le chemin courant où est stockée la base choix.mdb pour considérer que les fichiers de données y sont aussi, mais on peut faire comme on veut.
Je n'ai mis aucune donnée dans les tables, tu pourras le faire pour voir si les attaches fonctionnent correctement.
http://www.divshare.com/download/15971236-6a4
En décompressant dans le même répertoire, tu trouveras 4 bases access :
- trois bases nommées Choix_dataSCI001, ...SCI002 et ...SCI003.mdb
- une base nommée Choix.mdb, que tu lanceras, elle t'ouvrira un formulaire avec une zone de liste où tu pourras sélectionner 3 noms. Après sélection, s'affichera le lien actuel et on te posera la question de savoir si tu veux mettre à jour les liens entre les deux bases.
Les noms des trois bases sont dans la table, et je prends le chemin courant où est stockée la base choix.mdb pour considérer que les fichiers de données y sont aussi, mais on peut faire comme on veut.
Je n'ai mis aucune donnée dans les tables, tu pourras le faire pour voir si les attaches fonctionnent correctement.
Bonjour,
Un grand merci pour ton exemple de bases. Je les ai testées sur mes bases l'essai à l'air concluant.
J'essayerai un test grandeur nature dans la semaine et je te tiens au courant. Mais à priori c'est tout à fait ce que je recherchais.
Cordialement.
Un grand merci pour ton exemple de bases. Je les ai testées sur mes bases l'essai à l'air concluant.
J'essayerai un test grandeur nature dans la semaine et je te tiens au courant. Mais à priori c'est tout à fait ce que je recherchais.
Cordialement.
Bonsoir Bluz,
J'ai testé ton programme avec mes bases, tout à l'air de bien fonctionner. Par contre, je voudrais savoir :
1°) est-il possible de remplacer les messages "Chemin ......." et "Voulez vous mettre à jour............" qui apparaissent pour chaque table par un message avec choix oui ou non et confirmation "attention vous allez mettre à jour toutes les tables liées" ?
2° pourrais tu me donner quelques explications sur les instructions de la macro et leur mise en oeuvre ?
Je tiens à ta disposition, si tu le désires, un modèle de la base générée avec ta base "choix.mdb"
Bonne soirée et encore merci ta solution m'ouvre de belles possibilités.
J'ai testé ton programme avec mes bases, tout à l'air de bien fonctionner. Par contre, je voudrais savoir :
1°) est-il possible de remplacer les messages "Chemin ......." et "Voulez vous mettre à jour............" qui apparaissent pour chaque table par un message avec choix oui ou non et confirmation "attention vous allez mettre à jour toutes les tables liées" ?
2° pourrais tu me donner quelques explications sur les instructions de la macro et leur mise en oeuvre ?
Je tiens à ta disposition, si tu le désires, un modèle de la base générée avec ta base "choix.mdb"
Bonne soirée et encore merci ta solution m'ouvre de belles possibilités.
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
Modifié par blux le 19/10/2011 à 09:18
Modifié par blux le 19/10/2011 à 09:18
1°) On peut faire ce que l'on veut, le code est modifiable à l'envi.
J'ai mis un choix Ok-Annuler (plutôt qu'un choix oui-non), j'ai aussi rajouté un message de fin de procédure.
2°) Principes de fonctionnement :
- on dispose d'une table non attachée stockée dans la base (table 'locale', nommée T_SCI'), elle comprend deux champs : le premier (nommé Nom_SCI) est le nom de la base que l'on proposera dans une liste déroulante, le deuxième (nommé Chemin) est le nom physique du fichier .mdb auquel on rattachera les tables après le choix.
- une liste déroulante (nommée Chx_SCI) qui va chercher tous les premiers champs de la table 'locale' pour les proposer au choix de l'utilisateur.
- une fois le choix effectué, une procédure en vba, affectée à la propriété 'sur changement' de la liste, exécute un peu de code pour mettre à jour les attaches
J'ai aussi mis des commentaires à chaque ligne de code.
Pour ton cas, il faudra rajouter dans ta base un formulaire modal qui s'ouvre en premier, dans lequel se fera le choix.
Je poste ici :
http://www.divshare.com/download/15983026-499
le fichier .mdb (sans les .mdb liés, qui n'ont eux, pas changés)
J'ai mis un choix Ok-Annuler (plutôt qu'un choix oui-non), j'ai aussi rajouté un message de fin de procédure.
2°) Principes de fonctionnement :
- on dispose d'une table non attachée stockée dans la base (table 'locale', nommée T_SCI'), elle comprend deux champs : le premier (nommé Nom_SCI) est le nom de la base que l'on proposera dans une liste déroulante, le deuxième (nommé Chemin) est le nom physique du fichier .mdb auquel on rattachera les tables après le choix.
- une liste déroulante (nommée Chx_SCI) qui va chercher tous les premiers champs de la table 'locale' pour les proposer au choix de l'utilisateur.
- une fois le choix effectué, une procédure en vba, affectée à la propriété 'sur changement' de la liste, exécute un peu de code pour mettre à jour les attaches
J'ai aussi mis des commentaires à chaque ligne de code.
Pour ton cas, il faudra rajouter dans ta base un formulaire modal qui s'ouvre en premier, dans lequel se fera le choix.
Je poste ici :
http://www.divshare.com/download/15983026-499
le fichier .mdb (sans les .mdb liés, qui n'ont eux, pas changés)
Bonsoir Blux,
Un grand merci pour tes éclaircissements. Je commence à comprendre les instructions VBA utilisées dans la macro.
J'ouvre ma base d'exploitation sur ton formulaire de choix, ensuite j'ai arrangé à ma façon des instructions VBA (procédure évènementielle) afin de fermer le formulaire de choix et d'ouvrir mon formulaire d'exploitation.
Cela à l'air de tenir la route. Reste à l'utiliser en conditions réelles. Les tests ayant l'air concluant, je pense que l'exploitation devrait bien ce passer.
Je te remercie pour le temps que tu as bien voulu consacrer à ce vieux dossier. Peut être à bientôt sur ce forum ou un autre.
Salutations.
Un grand merci pour tes éclaircissements. Je commence à comprendre les instructions VBA utilisées dans la macro.
J'ouvre ma base d'exploitation sur ton formulaire de choix, ensuite j'ai arrangé à ma façon des instructions VBA (procédure évènementielle) afin de fermer le formulaire de choix et d'ouvrir mon formulaire d'exploitation.
Cela à l'air de tenir la route. Reste à l'utiliser en conditions réelles. Les tests ayant l'air concluant, je pense que l'exploitation devrait bien ce passer.
Je te remercie pour le temps que tu as bien voulu consacrer à ce vieux dossier. Peut être à bientôt sur ce forum ou un autre.
Salutations.
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
20 oct. 2011 à 09:24
20 oct. 2011 à 09:24
Content que ton problème soit en cours de résolution.
Je commence à comprendre les instructions VBA utilisées dans la macro.
On n'est plus dans le cadre d'une macro, mais on est bien en train de faire du code VBA pur...
Je commence à comprendre les instructions VBA utilisées dans la macro.
On n'est plus dans le cadre d'une macro, mais on est bien en train de faire du code VBA pur...
Bonjour Blux,
Je reviens vers toi pour un petit problème de chemin d'accès. Si mes tables à lier sont dans le même répertoire que ma base de choix aucun problème, sinon j'obtiens un message d'erreur me signalant que le chemin n'est pas valide.
Il y a t' il une syntaxe particulière pour indiquer le chemin d'accès aux tables à lier.
D'avance merci pour la réponse.
PS tout le reste fonctionne parfaitement.
Je reviens vers toi pour un petit problème de chemin d'accès. Si mes tables à lier sont dans le même répertoire que ma base de choix aucun problème, sinon j'obtiens un message d'erreur me signalant que le chemin n'est pas valide.
Il y a t' il une syntaxe particulière pour indiquer le chemin d'accès aux tables à lier.
D'avance merci pour la réponse.
PS tout le reste fonctionne parfaitement.
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
25 oct. 2011 à 18:59
25 oct. 2011 à 18:59
Comme je l'avais dit en son temps :
Les noms des trois bases sont dans la table, et je prends le chemin courant où est stockée la base choix.mdb pour considérer que les fichiers de données y sont aussi, mais on peut faire comme on veut.
Donc, il faut que tu me dises ce que tu veux faire...
Les noms des trois bases sont dans la table, et je prends le chemin courant où est stockée la base choix.mdb pour considérer que les fichiers de données y sont aussi, mais on peut faire comme on veut.
Donc, il faut que tu me dises ce que tu veux faire...
Bonjour,
Mes bases se trouvent sur le serveur de l'entreprise dans un répertoire par table, style (\\serveur\société\programme\gestion\Tables)
Mes bases se trouvent sur le serveur de l'entreprise dans un répertoire par table, style (\\serveur\société\programme\gestion\Tables)
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
26 oct. 2011 à 17:32
26 oct. 2011 à 17:32
Un répertoire par table ou un répertoire par base ?
un répertoire par base qui contient les tables à lier
\\serveur\société\programme1\gestion\Tables1
\\serveur\société\programme2\gestion\Tables2
\\serveur\société\programme3\gestion\Tables3
\\serveur\société\programme1\gestion\Tables1
\\serveur\société\programme2\gestion\Tables2
\\serveur\société\programme3\gestion\Tables3
blux
Messages postés
26503
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
2 décembre 2024
3 317
28 oct. 2011 à 11:16
28 oct. 2011 à 11:16
Bon, j'ai un peu remodifié, c'est ici :
http://www.divshare.com/download/16055227-7c8
http://www.divshare.com/download/16055227-7c8
22 oct. 2009 à 21:29
Merci pour la réponse.
Mais mon problème est de pouvoir choisir lors de l'ouverture de la base qui contient les requêtes, formulaires, états et macros s'il est possible avec une instruction ou une macro de choisir quelles tables seront liées à cette base de données.
Est-ce possible ou pas.
Merci pour toutes idées.
Bonne soirée
Zébulon
Modifié par huile le 12/10/2011 à 16:07
13 oct. 2011 à 11:40
- le tableau de bord en excel ne peut pas contenir des formulaires, états ou macro access
- il est possible de faire ce qui est demandé en mettant à jour, via VBA, les attaches de tables pour pointer sur le bon fichier .mdb