ACCESS - Requete sql pour textbox

ACCESS - Requete sql pour textbox - VB/VBA/VBS - Programmation

Marsh Posté le 01-07-2009 à 12:36:52    

Bonjour,
 
Voici mon problème :
 
Je cherche à pouvoir afficher dans un même formulaire dans différentes textbox des valeurs venant de tables différentes. Je ne sais pas si c'est possible et comme cela implique beaucoup beaucoup de boulot sur ma base j'aimerais savoir si ca marche avant de me lancer la dedans.
 
J'aimerais donc savoir s'il est possible d'avoir une textbox qui prend comme valeur : =Select F_I1 From Matable WHERE (...) ;
Peut être faut il passer par un requette ? dans ce cas la je mets : =MaRequette!F_I1
 
Est ce que cela peut fonctionner ?

Reply

Marsh Posté le 01-07-2009 à 12:36:52   

Reply

Marsh Posté le 01-07-2009 à 14:48:23    

Tu peux faire des Select sur plusieurs tables si c'est ça la question. Mais précise ce que tu veux car j'ai du mal à voir ce que tu veux avoir comme valeurs.

Reply

Marsh Posté le 01-07-2009 à 15:07:03    

Enfait je souhaite que "la textbox" d'un sous formulaire affiche une valeur qui est dans un autre table que dans la table donné comme source.
 
Cependant j'ai essayé avec une requette ca ne fonctionne pas  
voici la requête : Requête1
SELECT *
FROM CMR_FAITS
WHERE (((CMR_FAITS.RSQ_ID)=Formulaires!Frm_Consultation_Saisie_Nouveau!CmbRisque) And ((CMR_FAITS.TPS_ID)=Formulaires!Frm_Consultation_Saisie_Nouveau!CmbExercice) And ((CMR_FAITS.GAR_ID)=Formulaires!Frm_Consultation_Saisie_Nouveau!CmbGarantie) And ((CMR_FAITS.VER_ID)=Formulaires!Frm_Consultation_Saisie_Nouveau!CmbVersion) And ((CMR_FAITS.PHA_ID)=Formulaires!Frm_Consultation_Saisie_Nouveau!CmbPhase));
 
Voici ce que j'écris dans la textbox :
=Requête1!F_I1
 
Le formulaire père est Frm_Consultation_Saisie_Nouveau et le sous formulaire SS_Frm_Consultation_Saisie_Nouveau
 
Quand j'apelle la requette à la main (c'est à dire si je l'ouvre à la main en donnant les paramètres que je veux) cela me sort la bonne ligne de la table.
 
Le problème est que ca ne fonctionne pas le résultat est #Nom ?
 
Si quelqu'un a une idée/conseil/vois l'erreur je lui en serai très reconnaissant.

Reply

Marsh Posté le 01-07-2009 à 15:12:27    

Je ne suis pas spécialiste en Access mais t'es sur qu'on peut accéder aux données avec par exemple "Formulaires!Frm_Consultation_Saisie_Nouveau!CmbPhase" dans une requête SQL ? Car j'ai un doute là.
Et d'ailleurs elles viennent d'où ces données ? C'est un champ de ton formulaire ?


Message édité par Deamon le 01-07-2009 à 15:34:13
Reply

Marsh Posté le 01-07-2009 à 15:25:27    

oui le CmbPhase est un champ du formulaire Frm_Consultation_Saisie_Nouveau
 
Pour la récupération des données de ce style dans une requête SQL il y en a qui fonctionnent comme ca dans ma base de données (je suis un petit stagiaire qui rénove une vieille base donc je découvre access..).
 
edit : enfait même si je fait =CMR_FAITS.F_I1 ca ne marche pas alors que je suis les indications du générateur d'expression..
Donc je ne comprends vraiment pas, il doit y avoir une option à décocher ou je ne sais pas quoi...


Message édité par Nimarog2 le 01-07-2009 à 15:46:54
Reply

Marsh Posté le 01-07-2009 à 19:40:00    

le mieux est d'utiliser la fonction "Dlookup" c'est beaucoup plus simple.

Reply

Marsh Posté le 02-07-2009 à 09:25:42    

Je ne comprends pas, ca ne marche toujours pas avec Dlookup.
 
Je mets :
Dlookup("[F_I1]","CMR_FAITS" )  
et ca sort #NOM?, alors que je devrais me retrouver avec un enregistrement au hasard non?
 
Par contre si je mets dans le code : Txt_I101.value=Dlookup("[F_I1]","CMR_FAITS" )  
Je me retrouve avec une valeur, par contre si je fais :  
Txt_I101.value=Dlookup("[F_I1]","CMR_FAITS","[RSQ_ID]=1" ) ca me fait une erreur d'incompatibilité de type dans le criètre.
Alors que le champs RSQ_ID existe dans la table CMR_FAITS et qu'il y a des enregistrements qui ont RSQ_ID=1
 
Si vous aviez une idée..  

Reply

Marsh Posté le 03-07-2009 à 09:06:51    

Bon en fait résolu je passe par des DAO.Recordset, ca fontionne très bien, je n'avais pas pensé à passer par la avant

Reply

Sujets relatifs:

Leave a Replay

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