Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 16h52   #1
Invité régulier
 
Inscription : février 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 44
Points : 9
Points : 9
Par défaut Manipulation record Controle source formulaire

Bonjour à tous!

Je viens vers vous car j'ai un petit problème de compréhension générale du fonctionnement des sources de contrôle des formulaires (et je n'ai pas trouvé d'info dans la FAQ).

En fait, j'ai un formulaire tout simple avec une source de contrôle de type requête... qui marche très bien

Mais dans mon formulaire, je voudrais "simplement" concaténer deux champs renvoyés par la requête associée au formulaire afin d'afficher un titre.

Par exemple:
Ma requête renvoie une série de nom d'employés + leur boîte respective... et je voudrais afficher dans un champs "d'entête":

Gates (Microsoft)

Or, en VBA je ne vois pas comment parcourir le recordset renvoyé par cette requête (en source de contrôle de mon formulaire, je le rappelle) pour récupérer un nom au hasard et sa boîte.

Je suis pesuadé que c'est simple, mais cela fait deux-trois fois que je me cogne à l'impossibilité de manipuler le résultat de la requête "courante" pour afficher des infos... alors plutôt que de faire une énième DLookup ou carrément une nouvelle requête executée en VBA... je préfère l'avis des experts

Merci par avance!

PS: j'ai hésité pour la catégorie du forum, mais vu que ce n'est pas 100% de l'IHM, ni 100% du VBA, ni 100% du SQL...
Moskito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 17h33   #2
Expert Confirmé
 
Avatar de FreeAccess
 
Homme
Inscription : mars 2006
Messages : 2 309
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 2 309
Points : 2 847
Points : 2 847
Bonjour,

Sauf si je n'ai pas correctement compris la question...

....mais pourquoi ne pas "concaténer" directement au niveau de ta requête

Code :
NomBoite: [ChampNom] & "(" & [ChampBoite] & ")"
__________________
FreeAccess
"Petit à petit l'araignée tisse sa toile"
FreeAccess est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/02/2011, 09h27   #3
Invité régulier
 
Inscription : février 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 44
Points : 9
Points : 9
Bonjour et merci pour cette réponse

Alors oui, effectivement c'est une solution qui me semble viable (et que j'avais totalement occultée ).

Mais de façon plus générale, je me demande tout de même comment exploiter les lignes renvoyées dans le formulaire par la requête source. Sans forcément passer par une "variable" SQL. D'ailleurs, une fois concaténés, si je veux récupérer un enregistrement particulier pour l'affichage du formulaire, comment dois-je faire?

Un exemple bidon:
-j'ai une base avec des users et un admin
-je veux afficher en haut de mon form le nom d'un user
-je veux afficher en bas de mon form le nom de l'admin et la manière de le contacter
A part, en faisant de nouvelles requêtes distinctes et de les executer en VBA... n'y a t'il pas un moyen d'exploiter le fait que le formulaire est déjà lié à toutes les informations que je souhaite? En faisant des filtres par exemple?

Merci encore en tous cas
Moskito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 21h09   #4
Expert Confirmé
 
Avatar de FreeAccess
 
Homme
Inscription : mars 2006
Messages : 2 309
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 2 309
Points : 2 847
Points : 2 847
Bonjour,

Ta question est vaste....
Citation:
afficher en bas de mon form le nom de l'admin et la manière de le contacter
....si ces informations ne changent jamais:
entre les en "dur " sur ton formulaire (méthode pas top )

....sinon, je pense que ce type d'informations est contenu dans une table ...
regarde l'utilisation de DLookup qui te permettra de "récupérer" n'importe qu'elles données.
Les Fonctions de Domaine dans Access
__________________
FreeAccess
"Petit à petit l'araignée tisse sa toile"
FreeAccess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 08h59   #5
Invité régulier
 
Inscription : février 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 44
Points : 9
Points : 9
Merci pour cette réponse
Pour le Dlookup c'est exactement comme ça que je fais pour le moment... Mais je pensais qu'Access permettait de manipuler les données renvoyées par la requête source du formulaire... mais apparemment ce n'est pas le cas et je suis obligé de faire une autre requête (ou un Dlookup)!
Tant pis pour moi
Moskito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 10h18   #6
Invité régulier
 
Inscription : février 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 44
Points : 9
Points : 9
Après discussion avec un membre éminent du Forum (FreeAccess pour ne pas le citer ) voici la "méthode" pour réaliser ce que je souhaitais (tirée de ce => tutoriel <= de Sieur Christophe Warin):

Récupérer le recordset du formulaire:
Code :
Set recordset=Me.Recordset
Puis le manipuler "classiquement":
Code :
1
2
3
Dim strCritere as string
strCritere="NomClient LIKE " & chr(34) & "T*" & chr(34)
Me.Recordset.FindFirst strCritere
Encore merci à toute la communauté et plus particulièrement à FreeAccess et Christophe Warin
Moskito est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h25.


 
 
 
 
Partenaires

Hébergement Web