|
Sujet n°270 |
Cacher Requête derière code Formulaire
par Lendcap
le 21/09/2009 : 19:38 |
Bonjour Pierre,
je fait face à une enorme difficulté. Jai suivi la procedure que tu m'as indiquée dernièrement pour cacher les requètes derière les formulaires mais je n'y arrive pas pour les requètes selections impliquant plusieurs tables ainsi que pour les requêtes union. Par ailleurs quel serait le process à observer pour un etat qui est renseigné par une sous requête renseignée elle même par une autre sous requête ?
Merci d'avance pour ton aide
Lendcap
|
Réponse n° 1 |
par 3Stone
le 22/09/2009 : 14:13 |
Bonjour,
Dixit...Jai suivi la procedure que tu m'as indiquée dernièrement pour cacher les requètes derière les formulaires
Heu... attention, ce n'est pas prévu pour cela à l'origine... de plus, cela ralenti légèrement en comparaison d'une requête enregistrée. Il arrive en fait qu'il soit impossible d'écrire une requête "à l'avance" et cette méthode de créer la requête dans une chaîne de caractères s'avère alors bien pratique. Le fait est que toutes les requêtes sont possible, on peut d'ailleurs créer de cette façon une requête enregistrée... Mais, il faut maitriser la méthode. Méthode parfois difficile à apréhender lorsque l'on doit incorporer des valeurs "externes" comme c'est le cas lorsque l'on fait référence à un critère d'on l'origine est une zone de texte qui se situe sur un/le formulaire. Un exemple simple. je souhaites faire une requête qui possède comme critère la valeur saisie dans une zone de texte par l'utilisateur. Dim sSQL As String sSQL = "SELECT NomFruit, Origine FROM T_Fruits WHERE Origine='" & Me.txtOrigine & "';" Comme tu peux le remarquer, la référence à la zone de texte est "sortie" de la chaîne, pour concaténer sa valeur et non son nom. Notes, tenter de "protéger" une base lorsque l'on ne maîtrise pas encore Access est une tâche plutôt ardue Cordialement, Pierre(3stone) |
Réponse n° 2 |
par Lendcap
le 23/09/2009 : 13:05 |
Bonjour, jusqu'alors tt va bien mais comment integrer la clause UNION de la requête quand plusieurs tables sont impliquées. voici ce que j'ai ecris par exemple: Me.RecordSource = "Select Champ1, Champ2 From La Table Union All Select Champ1, Champ2 From La Table2;" Mais ça ne fonctionne pas comment remedier à cela. Merci pour votre aide. Lendcap |
Réponse n° 3 |
par 3Stone le 24/09/2009 : 17:11 |
Bonjour,
Cela devrait fonctionner, pour autant que les champs soient du même type.
Donc, à un champ texte dans la première table doit correspondre un champ texte de la seconde table...
Cordialement, Pierre(3stone)
|
Réponse n° 4 |
par Lendcap
le 25/09/2009 : 11:55 |
Bonjour Pierre, Mon objectif est de rendre complètement mes requêtes invisible aux utilisateurs. N'est il pas possible tout simplement de les creer dans le VBA ? Si oui quelle serait la procedure ? et par la suite comment utiliser ces requêtes comme source d'enregistrement d'un Etat ou d'une autre requête ? Merci pour votre soutien Lendcap |
Réponse n° 5 |
par 3Stone le 25/09/2009 : 20:36 |
Salut,
Dixit...Mon objectif est de rendre complètement mes requêtes invisible aux utilisateurs.
C'est ce que tu était en train de faire en les créant dans le code...
Sinon, solution simpliste, tu les "cache" en les sélectionnant et puis par les propriétés, tu coches l'attribut "masqué". Mais, tout utilisateur connaissant un peu Access peut inverser cela
Pour créer une requête enregistrée par VBA:
Dim db As doa.Database Dim maReq As DAO.QueryDef
Set db = CurrentDb Set maReq = db.CreateQueryDef("Nom_de_la_requete", "Select NoClient From MaTable")
Mais elle n'est pas cachée pour autant, à moins de la supprimer après usage
Cordialement, Pierre
|
[ Retour à la liste des sujets ]
| Recherche
Préférences
1 membre
Connectés :
( personne )
|