Changer la base de donnée d'une zone liste modifiable sous access / vba

Signaler
Messages postés
40
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
17 mai 2005
-
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012
-
Bonjour a tous
Je voudrai savoir comment changer la base de donnée d'une zone liste modifiable sous access / vba

Je m'explique : j'ai un formulaire avec une zone liste modifiable.
Dans cet objet je fais un select sur la database courante. Moi je voudrai faire un select sur une autre database.
Comment puis-je faire

Merci de votre aide

Dam

5 réponses

Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Si j'ai compris...

Tu as donc un formulaire access avec une zone de liste modifiable
qui contient différents selects sur les table de la base access courrante.
Et tu voudrais accéder à d'autres tables sur une autres base ?

Le plus simple pour toi est sûrement d'attacher/lier les tables des bases de données externes sur lesquelles tu veux travailler. Cette opération se fait par le menu Fichier/Données externes/Lier les tables.

Si tu choisi Importer alors tu crées une image à l'instant "t" de ta table...

Ensuite il te suffira de créer tes nouveaux select et de les ajouter à ta liste pour les avoir sous la main.

L'avantage de cette méthode c'est que tu as acccèdes à la structure des tables (ca aide pour les requêtes) et que la connection à la base sera défini lors du premier paramétrage lors de la liaison avec les données externes, puis résolu par access à chaque démarrage.

madbob
Messages postés
40
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
17 mai 2005

Bonjour a tous et tres bonne annee 2005

J'y ai deja pensé a cette methode mais le probleme c'est que la taille de la base augmente. Le but est belle et bien d'avoir 2 bases separées, une courante et l'autre d'archive. Pour un champ texte il n'y a pas de souci car je declare la base dans VBA en indiquant le chemin mais pour une zone liste modifiable ca ne fonctionne pas. La propriete rowsource le base sur la base par defaut.
Si tu as une autre idée , elle est la bien venue

Dam
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Bonne année itou....

Belle la nouvelle interface de saisie !!! put1 c l'eclate :-)



C'est normal que la liste te retourne la base sur laquelle elle pointe
!!! elle peut pas faire autrement et elle ne sait pointer que sur une
source de donnée à la fois.

Si tu veux qu'elle pointe sur une autre source de données, c'est à toi
de le lui dire par code mais la source de données reste unitaire.



Par contre rien ne t'empêche de la charger avec tes propres
informations... les unes provenant de la base de donnée courante et les
autres d'une autre base de donnée.

Tu dois pour cela tout gérer toi même et manibuler 2 objets database,
et faire un premier remplissage de liste depuis la base 1, puis un
ajout depuis la base 2.

Tu devras aussi avoir 2 colonnes dans ta liste pour te permettre de distinguer les bases pour les selects...



Techniquement, c'est plus simple d'avoir une liste des select sur la
base 1 et une liste des select sur la base 2... Ca evite toute
confusion entre les bases d'archive et de travail. A défaut de la
taille c'est cette option que je choisirai (tu as deux objets database
à gérer) et 2 listes pointants chacune sur des bases distinctes et avec
leur propres select.



Il faudra bien que tu fasses des choix au détriment des autres, la
taille, l'ergonomie, la maintenance, la fiabilité/robustesse...


madbob
Messages postés
40
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
17 mai 2005

Ma zone liste me comportera que le select de la 2eme database.
Alors techniquement comment dois-je faire pour que la zone liste de la database 1 fasse le select dans la database 2

Merci
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Après plusieurs recherches ....

je m'aperçoi que toutes les alimentations de listebox que j'ai fait sous Access sont faites soit à partir d'une table (interne ou externe) soit à partir d'une requete dans les propriétés de la listebox.



Donc en clair, si je l'ai fait c'est par le biais de chargement de
table... Qu'elle soit attachée ou chargée par tes soins je vois pas la
notion de gain de taille.



Il reste les Ocx peut être qui te permettraient de définir la connexion à la base et la Table/requête pour le chargement



Dsl mais j'ai pas d'autre méthode en stock...


madbob