Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fenêtre création de requête

6 réponses
Avatar
Gilbert
Bonsoir,

Voici mon problème :
Je veux laisser aux utilisateurs avertis de ma base de données la
possibilité de créer et modifier des requêtes en mode création.
Ces requêtes sont enregistrées dans la base dorsale.
Or avec la commande
DoCmd.OpenQuery MaRequete, acViewDesign
on ne peut ouvrir en mode 'acViewDesign' que des requêtes de la base
courante ou d'une base bibliothèque.

Question 1: Existe-t'il une autre commande ou option permettant d'ouvrir une
requête d'une autre base?
Question 2: Est'il possible d'enregistrer par VBA dans une base
bibliothèque ou n'est-elle accessible qu'en lecture (ce qui me semblerait
normal, en principe on ne va pas gribouiller dans les livres de la
bibliothèque municipale)? Si oui comment? Et est-ce possible en mode Runtime
(je sais que je n'ai pas accès au mode création de requête en Runtime)?

Si la réponse aux 2 questions ci-dessus est NON, mon idée est d'importer la
requête à modifier dans la base en cours, de la modifier, puis de la
réexporter.
Dans ce cas, comment puis-je tester si la fenêtre Création de requête est
ouverte? Ce qui me permettrait de l'exporter à la fermeture de la fenêtre
(avec quelque chose du genre If CurrentProject.AllForms(OpenForm).IsLoaded =
False pour tester si un formulaire est ouvert).

Toute autre idée sera la bienvenue.

Merci d'avance

Gilbert

6 réponses

Avatar
3stone
Salut,

"Gilbert"
| Voici mon problème :
| Je veux laisser aux utilisateurs avertis de ma base de données la
| possibilité de créer et modifier des requêtes en mode création.
| Ces requêtes sont enregistrées dans la base dorsale.


Je dirais qu'au lieu de placer les requêtes perso dans la dorsale,
je les laisserai justement dans la frontale...
De cette façon il ne mettre pas en danger celle des autres !



| Question 1: Existe-t'il une autre commande ou option permettant d'ouvrir une
| requête d'une autre base?

une requête est une simple ligne de texte (sql)...
il est bien plus réaliste de la rapatrier.


| Question 2: Est'il possible d'enregistrer par VBA dans une base
| bibliothèque ou n'est-elle accessible qu'en lecture (ce qui me semblerait
| normal, en principe on ne va pas gribouiller dans les livres de la
| bibliothèque municipale)?

enregistrer dans une base bibliothèque ??

qu'entends tu par là ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Gilbert
Bonjour 3stone

| Voici mon problème :
| Je veux laisser aux utilisateurs avertis de ma base de données la
| possibilité de créer et modifier des requêtes en mode création.
| Ces requêtes sont enregistrées dans la base dorsale.


Je dirais qu'au lieu de placer les requêtes perso dans la dorsale,
je les laisserai justement dans la frontale...
De cette façon il ne mettre pas en danger celle des autres !


Ca ne me semblait pas judicieux de les placer dans la frontale, car le jour
où je leur envoie une mise à jour du .mde, leurs requetes vont disparaitre.


| Question 1: Existe-t'il une autre commande ou option permettant d'ouvrir
une

| requête d'une autre base?

une requête est une simple ligne de texte (sql)...
il est bien plus réaliste de la rapatrier.


| Question 2: Est'il possible d'enregistrer par VBA dans une base
| bibliothèque ou n'est-elle accessible qu'en lecture (ce qui me
semblerait

| normal, en principe on ne va pas gribouiller dans les livres de la
| bibliothèque municipale)?

enregistrer dans une base bibliothèque ??

qu'entends tu par là ?



D'après l'aide d'Access sur OpenQuery :
base de données bibliothèque : Ensemble de procédures et d'objets de base de
données que vous pouvez appeler depuis n'importe quelle application. Pour
utiliser les éléments de la bibliothèque, vous devez au préalable établir
une référence de la base de données en cours vers la base de données
bibliothèque.


Gilbert

Avatar
3stone
Salut,

"Gilbert"

| > enregistrer dans une base bibliothèque ??

| >
| > qu'entends tu par là ?
| >
|
| D'après l'aide d'Access sur OpenQuery :
| base de données bibliothèque : Ensemble de procédures et d'objets de base de
[...]


ah oui... ;-)

De toute façon, je ne vois pas bien tout le monde pousser ses requêtes dans la dorsale...

Qu'elles soient sauvées dans la "bibliothèque" locale ou directement dans la frontale,
les utilisateurs avertis devraient être capable de les récupérer.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/

Avatar
Gilbert

De toute façon, je ne vois pas bien tout le monde pousser ses requêtes
dans la dorsale...


Qu'elles soient sauvées dans la "bibliothèque" locale ou directement dans
la frontale,

les utilisateurs avertis devraient être capable de les récupérer.



Justement, je voudrais automatiser l'enregistrement des requêtes des
utilisateurs.
Sais-tu comment je peux le faire dans la bibliothèque?

Et ce que veux dire :
Si vous exécutez du code Visual Basic contenant la méthode OpenQuery dans
une base de données bibliothèque.....?

Comment accède-t'on à cette bibliothèque?


Gilbert

Avatar
3stone
re,

"Gilbert"
| > De toute façon, je ne vois pas bien tout le monde pousser ses requêtes
| dans la dorsale...
| >
| > Qu'elles soient sauvées dans la "bibliothèque" locale ou directement dans
| la frontale,
| > les utilisateurs avertis devraient être capable de les récupérer.
| >
|
| Justement, je voudrais automatiser l'enregistrement des requêtes des
| utilisateurs.
| Sais-tu comment je peux le faire dans la bibliothèque?
|
| Et ce que veux dire :
| Si vous exécutez du code Visual Basic contenant la méthode OpenQuery dans
| une base de données bibliothèque.....?
|
| Comment accède-t'on à cette bibliothèque?


Pour déplacer/copier quelque chose vers une autre base, il faut l'ouvrir
(opendatabase "c:....vase.mdb" par opposition à currentdb)
et utiliser par exemple docmd.copyobject()


Pour une base "biblio", il suffit de la déclarer par les références
comme une quelconque dll
La méthode est utilisée pour les fonctions perso "générales" ou pour des fonctions
que tu souhaite protéger (dans une mde) en tant que biblio d'une base .mdb


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Gilbert

Pour déplacer/copier quelque chose vers une autre base, il faut l'ouvrir
(opendatabase "c:....vase.mdb" par opposition à currentdb)
et utiliser par exemple docmd.copyobject()


Pour une base "biblio", il suffit de la déclarer par les références
comme une quelconque dll
La méthode est utilisée pour les fonctions perso "générales" ou pour des
fonctions

que tu souhaite protéger (dans une mde) en tant que biblio d'une base .mdb



Bonjour 3stone

Merci de tes réponses.

J'ai créé une base "Biblio", que j'ai référencé dans ma base 'principale'.
Je peux accéder aux fonctions de test que j'y ai mis.
Par contre lorsque je veux utiliser la commande
DoCmd.OpenQuery "Requête1", acViewDesign
j'ai le message "Impossible de trouver l'objet 'Requête1' ", alors que dans
Si vous exécutez du code Visual Basic contenant la méthode OpenQuery dans
une base de données bibliothèque, Microsoft Access recherche la requête
portant ce nom dans la base de données bibliothèque, puis dans la base de
données en cours.

Si je dois ouvrir la base par un OpenDatabase, a quoi sert de l'avoir
référencée? Et le OpenQuery en mode acViewDesign ne fonctionne pas sur une
base externe.

Gilbert