[AC-2007]Affichage de tous les résultats d'une requête dans un seul ch

Affichage de tous les résultats d'une requête dans un seul ch [AC-2007] - VB/VBA/VBS - Programmation

Marsh Posté le 15-06-2010 à 23:01:52    

Bonjour à tous,
 
Je ne sais pas si mon titre est très explicite alors je vais m'expliquer
 
Voila j'ai crée une base de données qui permet (entre autres), de consulter le nombres d'ordinateurs, d'écrans, d'imprimantes et de scanner selon une pièce et selon le batiment.
 
Jusque là tout va bien, j'ai 2 listes déroulantes qui fonctionnent bien l'une en fonction de l'autre
 
Ensuite j'ai 4 champs textes, chaque champ texte me donne respectivement le nombre d'ordinateurs, d'écrans ... pour la pièce choisie.
 
Viens mon problème ! je voudrais réussir a afficher (et que ça reste assez "esthétique" ) dans 4 autres champs, les numéros respectifs d'ordinateurs, ecrans ... J'ai pensé au sous formulaire, mais cela devient horrible avec 4 requêtes différentes, donc 4 sous formulaires. J'ai essayé avec la zone de liste, mais soit je ne sais pas comment faire, soit ça n'est pas possible. La zone de texte ne donne bien évidemment que le premier résultat ... Je m'en vais tester de ce pas avec la liste déroulante, mais je ne pense pas arriver a un meilleur résultat (aussi car je ne connais énormément de fonctions d'access ...).
 
Merci de la lecture, en espérant que vous pourrez m'aider !
 
Merci, bonne soirée
Atomos

Reply

Marsh Posté le 15-06-2010 à 23:01:52   

Reply

Marsh Posté le 16-06-2010 à 10:14:20    

Hello
 
Il n'y a pas 75 solutions, et tu les evoques toutes ici.
Pourquoi est-ce que 4 requetes te posent souci ? Tu en as bien deja 2 pour tes 2 listes déroulantes...
 
Tu n'es meme pas obligé de "stocker" la requete. Tu laisses la requete au format texte sql directement dans la liste ou le sous formulaire.
L'avantage du sous formulaire, c'est que t'es pas obligé de gerer les filtres, les champs pere/fils font ca tres bien tout seul.
 
Non vraiment je ne vois pas le souci de 4 sous formulaires ou 4 zones de liste...


Message édité par SuppotDeSaTante le 16-06-2010 à 10:15:28

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 16-06-2010 à 19:30:20    

Salut, merci de ta réponse
 
Je n'ai pas de problèmes spécialement avec les requetes, c'est juste que je chercherai a éviter les sous formulaires, en passant justement par des zones de texte, mais je ne savais pas gérer le code derrière pour afficher les résultats derrière, cela dit j'ai encore un petit soucis, si le champ ne contient pas de valeur (donc que par exemple, il n'y ai pas d'ordinateurs pour cette pièce), j'ai une erreur :
 
"erreur d'exécution '-2147352567 (800200009)':
 
Aucun enregistrement en cours"
 
J'ai essayé de faire un controle comme pour le if, afin que le programme ne bug pas si le champ est "Null" mais pas moyen, j'aurais donc voulu savoir si il y avait un moyen de résoudre ce problème. Voici mon code :
 
Tout d'abord le débogeur me surligne cette ligne :
 
id1 = Nz(rs6.Fields(0), "" )
 
Et voici mon code concernant le champ texte :
 
Select Case id1
Case Is = ""
ta_asset_laptop = "No asset for this room"
Case Else
While Not rs6.EOF
ta_asset_laptop = ta_asset_laptop & " " & rs6.Fields(0) & vbCrLf
rs6.MoveNext
Wend
End Select
 
 
Voici la requete 1 correspondant a l'id 1 :
 
req1 = "SELECT Count(*) AS Nb_laptop FROM tab_laptop la, tab_location lo, tab_room ro WHERE lo.id_location=" & Me.ldr_location.Value & " AND ro.id_room=" & Me.ldr_room.Value & " AND la.id_location=lo.id_location AND la.id_room=ro.id_room;"
 
 
Et la requete 6 :
 
req6 = "SELECT id_laptop FROM tab_laptop la, tab_location lo, tab_room ro WHERE lo.id_location=" & Me.ldr_location.Value & " AND ro.id_room=" & Me.ldr_room.Value & " AND la.id_location=lo.id_location AND la.id_room=ro.id_room;"
 
 
 
Merci a vous

Reply

Marsh Posté le 17-06-2010 à 10:59:32    

Citation :

Tout d'abord le débogeur me surligne cette ligne :  
 
id1 = Nz(rs6.Fields(0), "" )

Si tu ne dis pas a quoi correspond rs6 ou comment il est declaré, ca risque d'etre dur de te repondre etant donné la "simplicité" de la fonction Nz... Qui ne fait que remplacer une Valeur1 par une Valeur2 si Valeur1=Null
 
Ensuite je pense que tu te prends vraiment la tete... Pour pas grand chose...
Access à mes yeux, a justement cet avantage que bcp de manip sont faisables sans code.
Ta demande se fait avec 0 code ou presque. (Juste besoin de code pour les sequence d'actualisation)
 
Les requetes en VB c'est pratique quand on a des boucles ou se genre de choses (histoire de "remplacer" une procedure stockée) mais pour un Select je trouve ca etrange. Pour retrouver tous tes Select bonjour l'angoisse...
 
Perso au lieu d'essayer de passer par autre chose que des sous formulaires, j'essayerai de passer par autre chose que du code tout le temps pour des manips aussi simples... Tu gagnerais beaucoup de temps amha.
 
Si tu as la base (ou le formulaire) je peux zieuter et te montrer que tes filtres avec tes pioches et l'actualisation des données sa fait sans code ou presque.
 
Après le but c'est peut etre de coder-coder-coder remarque...


Message édité par SuppotDeSaTante le 17-06-2010 à 11:02:30

---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed