Access : exécuter une variable dans une reque

Résolu/Fermé
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 - 21 mars 2007 à 12:35
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 - 22 mars 2007 à 15:41
Bonjour

J'ai un petit problème que je n'arrive pas à résoudre.
Ma base est déstinée à créer un outil de suivi réseau pour mon entreprise (savoir quel port de quel switch alimente la prise X)

J'ai créer un premier formulaire où l'on choisi l'etage, la zone, le numéro de prise et si elle est doublée ou non. Ces infos forment le numéro de prise complet (ex. 6223A où le 6 est l'etage, le 2 est la zone, 23 le numéro de prise et A la position sur le doubleur).

Le numéro de prise total se calcul dans un champ texte après avoir choisi les infos adéquates à travers des groupes d'options. Bref mon numéro de prise est une variable appelé Priz.

Mon souci est que je veux, utiliser cette variable dans une requete qui me ressort les infos sur sa source donc quel port de quel switch alimente la prise. En gros je veux executer ma requete à partir de ma variable via un bouton mais je ne vois pas du tout comment faire cela...

Si vous avez une idée.......

24 réponses

blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 13:19
Salut,

il suffit de récupérer la valeur de Priz pour l'introduire dans une requête, mais tu veux le résultat où : dans une fenêtre indépendante, dans une autre zone ?
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 14:06
oui merci Blux

Je sais ce que je doit faire mais je ne sais pas comment le faire !!
comment introduire une variable calculée dans un formulaire, directement dans une requete qui doit s'executer dans ce meme formulaire ??

Je veux que le résultat de cette requete s'affiche dans une zone de texte
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 14:13
- tu créés une zone de liste : Resu_Priz avec 2 ou 3 colonnes
- tu créés un bouton et dans ce bouton, tu mets le code suivant (dans la propriété 'sur clic' :
Dim StrSql As String
StrSql = "SELECT  port, switch FROM table "
StrSql = " WHERE Num_Priz = '" & Priz & "';"
Resu_Prix.RowSource = StrSql
Bien entendu, Priz est le nom de la prise dont tu veux obtenir les infos...

Il reste quand même quelque chose que je ne vois pas, c'est la façon dont tu récupères la valeur de prise : tu dis que c'est dans un champ texte ou c'est une variable ? Car si c'est dans un champ texte, il faut remplacer Priz par nom_du_champ.text...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 14:36
Je t'explique :

J'ai un formulaire avec :

Un Groupe d'option Etage où j'ai un bouton par etage (ex. 3)
Un Groupe d'option Zone où j'ai un bouton par zone (ex. 2)
Une Zone de texte où on saisie le numéro de prise (ex. 44
Un groupe d'option Doublage pour indiquer la position sur le doubleur (A ou B)

Un bouton valider qui me fais la concaténation de tout ça et cette concaténation s'affiche dans une autre zone de texte qui est mon numéro de prise total (dans notre exemple, cela donne 3244A).

C'est ce résultat qui est ma variable Calcul et que je veux utiliser pour lancer une requete, pour que à partir de cette variable, il me retrouve le switch et son port associé dans ma Table Prise
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 14:49
Ta solution me renvoi le numéro de prise
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 14:50
Tu as fait quoi au juste, car ma requête n'est qu'un exemple...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 15:15
J'ai fait ceci :

Private Sub BC_requete_rch_Click()
Dim StrSql As String
StrSql = "SELECT Port Switch,Switch d'Etage FROM T_PRISE"
StrSql = "WHERE Prise = '" & Calcul & "';"
MsgBox StrSql
End Sub


fo savoir que je suis loin detre un pro en programmation
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 15:21
Déjà, les noms de champ contenant des caractères 'spéciaux' (espace, accents) sont à mettre entre crochets [] et je déconseille l'utilisation des caractères accentués dans les noms des champs...

Pour le reste, quel est le problème ? Il affiche quoi dans StrSql ?

Il met bien à jour la zone de résultats ? Tu as copié le code dans un bouton ?
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 15:28
ba à part le Switch d'Etage, il n'y a pas de caractère spéciaux dans mes champs ni d'accent et je devrai faire comment avec les crochets ??
com cela ?? : StrSql = "SELECT Port Switch,Switch d[']Etage FROM T_PRISE"

StrSql m'affiche : "WHERE Prise = '" & 3233A & "';
=> 3233A etant le résultat de ma variable Calcul
alors que je veux, à partir de ma variable Calcul, qu'il m'affiche le switch et le port concerné

La zone de résultat ne se met pas à jour et oui, effectivement j'ai copié le code sur un bouton de validation
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 15:33
L'espace est un caractère spécial (comme je l'ai indiqué)

SELECT [Port Switch],[Switch d'Etage]...

Et je serais étonné qu'il t'affiche "WHERE Prise = '" & 3233A & "';

Ca ne serait plutôt pas WHERE Prise = '3233A'; ?

De toutes façons, s'il n'affiche rien dans la zone, c'est qu'il y a une erreur de syntaxe, ici, il manquait les crochets, remets-les et relance...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 15:37
Oui autant pour moi lol, j'avais mal lu

J'ai fait ce que tu as dit avec les crochets et il me ressort bien WHERE Prise = '3233A';
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 15:40
et ce WHERE Prise = '3233A'; s'affiche bien dans la zone de liste
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 15:48
Tu as oublié de concaténer les deux lignes de la requête (relis bien mon exemple) :
StrSql = "SELECT Port Switch,Switch d'Etage FROM T_PRISE"
StrSql = StrSql +  "WHERE Prise = '" & Calcul & "';"
C'est donc normal qu'il n'affiche rien d'intéressant puisque tu remplaces la première ligne par la deuxième :-)
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 15:57
Ok mais dans ce cas là il m'affiche l'enchainement de la concaténation

=>SELECT [Port Switch],[Switch d'Etage] FROM T_PRISEWHERE Prise = '" & Calcul & "';

et j'ai bien fait ce que tu m'a dit lol, j'ai vérifié et revérifier
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 16:04
Tu affectes cette chaine à une zone de liste par .rowsource ?

C'est bien un contrôle de type 'zone de liste' ?
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 16:17
mes reponses ne passent plus !
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 16:22
???
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
21 mars 2007 à 16:23
Oui c'est bien ce que j'ai fait

je te met le code ci dessous peut etre y verras tu une erreur !!

Private Sub BC_Requete_rch_click
Dim StrSql as String
StrSql = "SELECT [Port Switch],[Switchd'Etage] FROM T_PRISE"
StrSql = StrSql + "WHERE Prise = '" & Calcul & "';"
Resu_Priz.RowSource = StrSql
Msgbox StrSql
End Sub
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
21 mars 2007 à 21:37
Manque un espace entre T_PRISE et WHERE...
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
22 mars 2007 à 11:38
Bonjour

Désolé de ne pas avoir répondu plus tot, mais je suis parti tot hier...

Meme avec l'espace que j'ai oublié, cela ne change rien, ça me ressort quand meme SELECT [Port Switch],[Switch d'Etage] FROM T_PRISE WHERE Prise = '" & Calcul & "';

En fait ce que j'aimerais : j'ai une requete qui me cherche le switch et son port concerné par le numéro de prise entré. Si j'execute simplement la requete, j'entre le numéro de prise via une input box et ça me ressort les infos que je veux. Donc là, j'aimerais que, au lieu d'entré le num de prise manuellement, que en cliquant sur mon bouton sur lequel j'ai affecté ma requete, qu'il me prenne mon num de prise (qui est une variable) et qu'il me sorte les infos automatiquement. Et ze trouve pas pour le moment :(
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
22 mars 2007 à 11:49
Resu_priz est bien une zone de liste ? (j'insiste !), et pas un champ texte ?

Combien de colonnes sont prévues à l'affichage ?
0
mat67000 Messages postés 401 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 10 décembre 2019 13
22 mars 2007 à 12:05
J'insiste aussi lol !

OUI resu_priz est une zone de liste et 3 colonnes sont prévus : Prise, Switch et Port.

Tu peux jeter un oeil ici :
http://hebergement-images.voiloo.net/membres/viewimg.php?img=18ce98e10cfdbf59233e649fe6fa2311.jpg
0