rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[access] comparer donnée formulaire

mat67000, le jeudi 5 avril 2007 à 11:54:29
Bonjour,

Une fois de plus j'ai besoin de vos conseils :

J'ai un formulaire de création de prise où j'ai 5 champs :

le champ Prise rempli automatiquement
le champ Switch pour indiquer le Switch concerné
le champ Port pour indiquer le port concerné
le champ Remarque
le champ Type de switch

En fait ce que je cherche à faire, c'est qu'après avoir rentrer le numéro de Switch, si le port saisie est déjà pris par une autre prise (visible dans ma table T_PRISE), qu'Access me dise via une msgbox que la ressource est déjà utilisée.
Ou mieux encore, c'est que au moment de la saisie de Switch, qu'Access me dise directement quels ports sont disponibles ou non, mais c'est déjà plus corsé.

En fait j'ai cherché comment faire cela via la fonction Dlookup mais trouver la syntaxe pour comparer le Switch de les ports utilisés me parait legèrement ardue !!!
Je cherche comment faire autrement mais je ne vois pas trop, si quelqu'un a une idée ou une piste, ce serai très très sympa :-)
Configuration: Windows XP
Internet Explorer 6.0
Répondre à mat67000  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le jeudi 5 avril 2007 à 12:54:44
Salut,

ce que tu peux faire, c'est transformer ta saisie de port en liste déroulante, et lorsque tu saisis un switch, créer une requête qui va chercher les ports dispo, et que tu mets en .rowsource de ta liste choix_port...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le jeudi 5 avril 2007 à 16:36:00
merci blux pour ta réponse, tu va vraiment devenir un saint pour moi (ou une sainte lol). Aurais-tu une photo que je puis mettre au dessus de mon lit ?? :p

à part la plaisanterie de bas niveau. En fait ce que je voulai faire c'est créer une liste déroulante pour les switchs déjà, pour que quand ma prise est par exemple 2310A (donc 2e etage), qu'il interprete le 2 comme l'etage et qu'il me donne que le choix entre les switchs du 2e etage (ex: RSSTAE23 où le 2 est de nouveau l'etage).
Ensuite à partir de là, que les port disponibles s'affichent dans une liste déroulante comme tu me le conseil, ou sous une autre forme...

Je viens seulement de revenir devant mon poste donc je vais me pencher sur ton conseil, et au pire j'essairai d'avancer ce WE... si jamai tu as un autre conseil par rapport à ce que je viens de dire, ba hésite pas..

merci encore !!
Répondre à mat67000

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le jeudi 5 avril 2007 à 16:49:17
un saint pour moi (ou une sainte lol). Aurais-tu une photo que je puis mettre au dessus de mon lit ??
Mon profil suffira...

Il te suffit te récupérer une partie de ton numéro de prise (avec left, right et tout le toutim) pour passer ça en paramètre de la requête switch que tu mettras en .rowsource...

num = left(prise,1)
strsql = "select .... from switch where mid(switch,7,1) = " & num & ";"
liste_switch.rowsource = strsql

Ou un truc comme ça, je l'ai écrit en vitesse, je ne suis pas sûr de la syntaxe...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le jeudi 5 avril 2007 à 16:53:51
Ok merci blux

je testerai tout ça durant le WE de paques et jte dirai ce qu'il en est...
Répondre à mat67000

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le samedi 7 avril 2007 à 15:44:19
bonjour

bon j'ai tester quelque chose avec la fonction left pour extraire le 1er caractère de mon num de prise mais g une erreur "Projet ou bibliotheque introuvable) sur la fonction Left. Je sais ps cela viens peut etre du fait que je ne travail pas sur le PC habituel de ma bse. En tous cas voici le code, si quelqu'un sait pourquoi j'ai une telle erreur....

Dim num
num = Prise.Value

num = Left(Prise, 1)
msgbox num
Répondre à mat67000

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le samedi 7 avril 2007 à 17:19:32
bon j'ai réussi à faire ce que je voulais avec le code suivant :

Private Sub Modifiable70_Enter()
 Dim num 
Dim StrSql 
num = Prise.Value 
num = Left(Prise, 1)   
StrSql = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE mid([N° Switch],7,1) = " & num & ";"   
Modifiable70.RowSource = StrSql 
End Sub


Cela fonctionne à merveille sauf que maintenant j'ai une utre contrainte :
tous les switchs d'etage ont la nomenclature RSSTAE.. donc grace au code ci dessus, j'arrive à ne selectionner que les switchs d'Etage de la prise concerné sauf qu'il me faut aussi systématiquement les switchs d'imprimante avec la nomenclature suivante RSSTAG..

mon problème est d'arriver à ce que Access inclue toujours c'est switchs peut importe l'Etage. J'ai déjà fait des recherches et des essais mais je n'y parvient pas, voici un des codes que j'ai essayé, donc is vous pouviez m'aider ce serai top !!!

Dim StrSql2
StrSql2 = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE Left(N° Switch, 6)= " & "RSSTAG" & ";"
Modifiable70.RowSource = StrSql2


J'ai aussi penser à faire la chose suivante mais je n'y arrive pas non plus : dans ma requete R_AJOUT_PRIZ, j'ai un champ "Type de switch" donc il faudrai que je lui dise via VBA de toujours selectionner les N° de Switch d'un Type Imprimante, mais je coince
Répondre à mat67000

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le lundi 9 avril 2007 à 20:16:17
Bonjour

bon, j'ai réussi à régler mon souci de switchs et de switchs d'imprimante via ceci :

StrSql = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE (mid([N° Switch],7,1) = " & num & ") OR (Left([N° Switch], 6)= " & "'RSSTAG'" & ");"


maintenant je peux presque clôre ce topic, j'ai juste encore à trouver la bonne requete pour qu'Access me calcule les ports dispos selon le switch sélectionner, donc mon problème de départ...

Je voulais simplement te tenir u courant blux, vu que c'est toi qui m'a aidé jusque là....
Bref, je verrai cela demain

Bonne soirée à tous...
Répondre à mat67000

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mardi 10 avril 2007 à 11:50:18
Bonjour à tous

Quelqu'un aurait-il la moindre idée de comment m'y prednre pour créer une requete qui me calcul quels ports sont disponibles pour un switch donné selectionné ?? et comment calculer le nombre de ports dispos par switchs ???

car je cherche depuis 2h30 et je ne trouve absolument rien du tout, je ne vois absolument pas comment faire cela.


please help car je nage...
Répondre à mat67000

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mardi 10 avril 2007 à 12:19:59
Bon j'ai réussi à créer une requete qui m'affiche le nombre de ports utilisés par switchs mais je n'arrive pas à trouver comment faire pour qu'il me dise quelles prises sont concernées...

vous trouverez via ce lien, une image de l'etat de ma requete :

http://hebergement-images.voiloo.net/...

c'est vraiment compliqué tout ça et j'avoue que là je patoge !!!
Répondre à mat67000

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mardi 10 avril 2007 à 13:11:49
C'est trop simple (donc j'ai pas du comprendre la question !) :

select [port switch] from t_prise, t_switch where [switch d'etage] = [N°switch] and [N°switch] = "le_switch_de_mon_choix";
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mardi 10 avril 2007 à 14:10:00
Je vais essayer ta solution blux.

Je récapitule mon souci :-)

J'ai un formulaire de création de prise où, grace à une liste déroulante, je choisi un switch (logique jusque là).
Lorsque j'ai choisi ce switch, je veux (par exemple dans une autre liste deroulante) choisir le port. Sauf que je ne veux afficher que les ports du switch qui sont libres.

Je cherche egalement à savoir le nombre de ports disponibles par switch mais aussi, lorsque je choisi un switch, savoir (via une zone de texte) quels ports sont occupés et par quelles prises.
Je sais ça fait beaucoup de choses mais une fois que je saurais ça, je vais avoir largement moins de problèmes :-)

Pour le moment j'arrive à calculer le nombre de ports occupés pour un switch donné via le lien de mon post précédent.
J'espère avoir réussi à etre clair dans mes explications, je cherche depuis ce matin comment faire tout cela et je rame vraiment...
Répondre à mat67000

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mardi 10 avril 2007 à 15:54:10
J'ai pensé que si je créer une table PORTS avec simplement un champ Port numéroté de 1 à 24 cela pourrait peut etre aidé non ???

Enfin bon, je m'égousille là dessus depuis ce matin et je n'avance pas d'un poil !! ça commence à me gonfler mais bon, j'y arriverai j'ai pas le choix, en espérant que ce soit avec votre aide ;-)
Répondre à mat67000

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mardi 10 avril 2007 à 15:58:09
La requête donnée en 9 ne suffit pas ?
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mardi 10 avril 2007 à 16:37:47
Ba non, je l'ai testé dans le code VBA de mon formulaire et directement dans le code SQL de ma requete mais cela ne produit aucun effet...

Pour etre sûr que j'ai interpreté correctement ton code, je te met ci dessous ce que j'ai mis...

SELECT [Switch d'Etage] FROM T_PRISE, T_SWITCH WHERE [Switch d'Etage] = [N° Switch] and [N° Switch] = "Formulaires![F_RCH_PORT_SWITCH]![Switch d'Etage] "; 


Je l'ai peut etre mal interprété
Répondre à mat67000

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mardi 10 avril 2007 à 16:40:27
T'as pas oublié des & pour concaténer ?
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mardi 10 avril 2007 à 17:43:08
Ba pour etre franc, j'ai testé ta solution vite fait car j'ai dû partir du boulot donc je m'y remet dès demain...

c'est peut etre idiot ce que je vais dire mais concaténer quoi ??
un truc du genre ??

SELECT [Switch d'Etage] FROM T_PRISE, T_SWITCH WHERE [Switch d'Etage] = [N° Switch] and [N° Switch] = " & Formulaires![F_RCH_PORT_SWITCH]![Switch d'Etage & "; 


mais dans ce cas je vois qu'est ce que je concatène avec quoi lol
ou alors tu parles de cette partie ?

SELECT [Switch d'Etage] FROM T_PRISE, T_SWITCH 


avec une concaténation à ce niveau ??

SELECT [Switch d'Etage] FROM T_PRISE, & T_SWITCH & 


c'est peut etre totalement idiot ce que je suppose là mais disons que je suis ps le plus familier avec SQL même si j'ai compris ce que j'ai fait jusqu'ici (j'evite de faire quelque chose que je comprend ps en général), déjà que je commence à comprendre VBA tout juste !
Répondre à mat67000

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 11 avril 2007 à 08:32:41
Ta requête, tu l'exécute comment ? C'est un rowsource ? Si oui, alors il faut intégrer les & comme tu le dis dans ton premier exemple...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mercredi 11 avril 2007 à 10:47:22
Oui j'execute ma requete avec un rowsource dans une zone de liste de mon formulaire mais aucun effet, j'ai dû oublier quelque chose...

voici ma requete :

SELECT [T_PRISE].[Switch d'Etage]
FROM T_PRISE, T_SWITCH
WHERE ((([T_PRISE].[Switch d'Etage])=[N° Switch]) And (([T_SWITCH].[N° Switch])=" & Switch d'Etage  & "));


et le code de ma zone de liste :

Private Sub Liste6_Enter()
Dim essai
essai = [R_ESSAI]
Me.Liste6.RowSource = essai
End Sub


Je vais revérifier, il doit y avoir quelque chose de pas clair ou alors je ne suis pas bien reveillé lol
Répondre à mat67000

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 11 avril 2007 à 11:10:40
Ton code ne doit pas être comme tu l'indiques, la requête dont être clirement définie (pas de paramètres en 'live') et le code ne doit pas être mis quand on rentre dans la liste (liste6_enter) mais quand on saisit un truc avant...

Private Sub Liste6_Enter()
Dim essai
essai = "SELECT [T_PRISE].[Switch d'Etage] "
essai = essai + " FROM T_PRISE, T_SWITCH "
essai = essai + " WHERE ((([T_PRISE].[Switch d'Etage])=[N° Switch]) "
essai = essai + " And (([T_SWITCH].[N° Switch])=" & [Switch d'Etage].value & "));
Me.Liste6.RowSource = essai
End Sub
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mercredi 11 avril 2007 à 11:25:15
Merci blux

J'ai testé ton code mais le résultat fait que, dans mon formulaire j'ai une inputbox qui apparait me demandant un paramètre pour le switch selectionné à ce moment là.

Dans tous les cas, une chose que je comprend pas : je cherche, lors d'une création de prise et après le choix d'un switch, de ne pouvoir choisir que les ports disponibles sur le switch selectionné et dans ce code que tu me conseilles, je ne vois aucune notion de port lol. Nous sommes nous bien compris au départ ou m'étais-je mal exprimé ??

Car dans le dernier post que j'avai laissé, j'ai pensé à faire en sorte que dans une zone de texte (par exemple) l'ensemble des ports du switch concerné s'affiche, pour ensuite inversé la chose et me lister les ports disponibles...
Répondre à mat67000

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 11 avril 2007 à 11:32:17
Ma requête donnée en 9 parle bien des ports... Tu as dû la lire de travers... :-)
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mercredi 11 avril 2007 à 10:50:24
J'ai testé autre chose c'est à dire que j'ai fait une requete avec simplement le N° de switch et le port de ma table T_PRISE. Puis j'ai un formulaire rapide où j'ai mon numéro de Switch et mon port sous zone de texte. Mais ce que je cherche à faire, c'est afficher tous les enregistrement de ma zone de texte Port dans un seul enregistrement de mon formulaire.

En gros, de lister tous les ports concerné par le switch X dans ma zone de texte.
Répondre à mat67000

24


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 11 avril 2007 à 12:43:59
Faut faire un recordset, le parcourir et concaténer les résulats, pour à la fin les afficher dans une seule zone...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

25


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mercredi 11 avril 2007 à 12:46:36
Ouinnn j'ai jamais fait ça lol

Je vais essayer mais je te promet rien.
Je n'arrete pas d'essayer différentes choses et je commence à plus savoir ce que je fait réellement lol
Répondre à mat67000

26


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 11 avril 2007 à 13:13:15
je commence à plus savoir ce que je fait réellement lol
C'est bien ce que tes différents messages tendent à prouver ;-)
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

27


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mercredi 11 avril 2007 à 14:23:00
Oui je sai ;-(

limite faudrais que je reprenne tout du début mais c'est surtout que je ne sais tjs pas comment faire ce que je veux faire au mieux.

J'aimerai te demander un service :
pourrais-tu me donner les trames de la démarche pour créer un recordset, le parcourir.... ??

J'ai chercher et lu deux trois trucs sur les recordset et je ne comprends pas bien la démarche...

En espérant pas t'ennuyer à force :-)
Répondre à mat67000

28


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
blux, le mercredi 11 avril 2007 à 14:30:47
va voir là, on est en plein dedans :

access ajout d enregistrement requete#2007 04 11%2014%3A21%3A27
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Répondre à blux

29


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mat67000, le mercredi 11 avril 2007 à 15:00:02
merci, j'ai vu ton lien, je vois pas trop comment afficher tous mes ports selon le switch mais faut que j'étudie le code affecté à un recordset, un peu plus en profondeur... bref, mon cerveau doit pas être à jour aujourd'hui.

Dans tous les cas, je vais déjà voir une autre étape de mon projet, je dois voir quelqu'un demain matin pour m'aider là dessus, je reviendrai te tenir au courant
Répondre à mat67000