Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1236 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Access] programmer une requete a partir d'un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access] programmer une requete a partir d'un formulaire

n°1580381
La poisse1
Posté le 28-06-2007 à 14:40:18  profilanswer
 

bonjour tout le monde!  
voila mon sujet:
j'ai une table avec des gens dedans
une autre avec des metiers
une autre avec des etablissements
une personne a un métier dans un etablissement.
 
j'affiche dans un formulaire un etablissement.
dans ce meme formulaire, j'aimerai, par un clic sur un bouton, aficher une requete, qui me donne les differentes personnes et leurs fonctions au sein de cet etablissement.
 
le problème, c'est que j'ai 10 etablissements, et ca me fait ch*** de faire 10 requetes diferentes. j'aimerai, dans la procédure du bouton, qu'il prenne le nom de l'etablissement qui est dans la zone de texte de mon formulaire, et qu'il la colle en critère de ma requete avant de l'ouvrir.  
 
je sais que je peux le faire via une macro, mais comme l'operation va se répeter, j'aimerai trouver autre chose...
 
'hesitez pas a poser des questions je suis derrière mon pc et je me galère a essayer, je peux repondre a tout les mess...

mood
Publicité
Posté le 28-06-2007 à 14:40:18  profilanswer
 

n°1580382
jpcheck
Pioupiou
Posté le 28-06-2007 à 14:44:33  profilanswer
 

alors petite astuce pour pas te prendre le chou, dans tes tables, mets un autonumber comme clé primaire, comme ca tu auras besoin que d'un nombre en critere.
 
ta requete sera un truc du style:
 
sub bouton_clik()
dim ReqSQL as string
if not isnull(me.malistebox) then
ReqSQL = "SELECT * from table1, table2 where table1.cleprimaire = " & me.malistebox  
DoCmd.openrecordset ReqSQL
'------
' lignes de remplissage des auters list boxes.
'------
end if
end sub

n°1580396
La poisse1
Posté le 28-06-2007 à 14:58:29  profilanswer
 

alors... je suis pas bon dans les langages qe je connais, alors en SQL...  
bilan de l'existant:  
un formulaire appelé Form_Etablissement
            un bouton sur le formulaire appelé CmdFormulaire
            une zone de texte dont le recordsource indique ETABLISSEMENT, du nom de ma table
un formulaire basé sur ma requête
 
excuse moi mais je comprend pas tout... je bloque a la condition if: pourquoi on en passe par la?  
 

n°1580398
La poisse1
Posté le 28-06-2007 à 14:59:37  profilanswer
 

ah oui, quand meme, ma table etablissement possède une clé primaire en numeroAuto

n°1580437
La poisse1
Posté le 28-06-2007 à 15:23:04  profilanswer
 

reqSQL c'est ma requete a moi c'est ca?
 
et tou ca je le fout derrière mon bouton...
pourquoi "me.malistbox"?
et ce que je peux ecrire ca en ayant une zone de texte plustot qu'une listbox?

n°1580449
jpcheck
Pioupiou
Posté le 28-06-2007 à 15:36:26  profilanswer
 

reqsql est effectivement la requete que tu executeras dans ta base
me représente l'objet dans lequel tu te trouves,
je suis parti du principe que tu as une listebox (appelée ici malistbox) dans laquelle tu as les établissements,
me.malistbox renvoie ainsi le numéro (clé primaire) de ta table qui va chercher les autres informations.

n°1580463
La poisse1
Posté le 28-06-2007 à 15:48:33  profilanswer
 

moi j'ai une requete deja faite et je veux coller un critère, ce critère etant erit dans ma zone de texte appelé AbrevEts. ca mache dns ce cas la?

n°1580468
jpcheck
Pioupiou
Posté le 28-06-2007 à 15:51:41  profilanswer
 

ben en principe oui
quand exécutes tu ta requete, et a quoi ressemble-t-elle ?

n°1580476
La poisse1
Posté le 28-06-2007 à 16:02:08  profilanswer
 

en fait je l'ouvre avec mon bouton, alors je vais ecrire tout ca avant la procédure d'ouverture non?
elle présente le nom, le prenom, le tel, le mail, du directeur de l'etablissement. en caché il y a le nom du site par lequel j'aimerai faire le tri. en gros, pour mon etablissement "CHL", j'ai un directeur different que pour l'etablissement "CHEM".
donc je veux qu'avec la meme requete, en partant de l'enregistrement "CHL" j'ai le directeur du CHL qui s'affiche, et en partant de l'enregistrement CHEM ce soit le directeur du CHEM qui s'affiche  
 

n°1580477
jpcheck
Pioupiou
Posté le 28-06-2007 à 16:04:20  profilanswer
 

oui j'ai bien compris, mais tu n'as pas répondu à ma question stp...

mood
Publicité
Posté le 28-06-2007 à 16:04:20  profilanswer
 

n°1580484
La poisse1
Posté le 28-06-2007 à 16:18:39  profilanswer
 

en fait je veux qu'elle s'execute a chaque fois que j'appuie sur ce meme bouton.
j'ai fait un screenshot de ma requete mais je sais pas l'inserer :sweat:  
 
en fait ma requete a une premiere categorie "Fonction" ou le critère est "directeur", ensuite j'ai des trucs qui servent a rien (nom, prenom, tel, mail) et en masqué j'ai ma categorie AbrevEts, dans laquelle j'aimerai mettre ce que je veux. sur la requete j'ai créé un formulaire, j'espère que ca repond a ta question...
 

n°1580485
jpcheck
Pioupiou
Posté le 28-06-2007 à 16:23:32  profilanswer
 

tu peux pas m'afficher la requete ?  :heink:

n°1580495
La poisse1
Posté le 28-06-2007 à 16:29:42  profilanswer
 

heu... j'aimerai bien mais j'arrive pas a mettre le screenshot dans mon texte... di moi ski fo fqire et y'a pas de soucis, par mail meme si tu veux

n°1580498
jpcheck
Pioupiou
Posté le 28-06-2007 à 16:31:22  profilanswer
 

tu peux pas faire un copier coller de ta requete ? :sweat:

n°1580506
La poisse1
Posté le 28-06-2007 à 16:39:00  profilanswer
 

lj'ai pas accès au code de la requete en fait... je fais a partir d'access et d'ecrans a la c**
 
voila ce que j'ai tapé de ce que tu m'avais proposé... mais ca ne fait pas le tri...
 
 
Private Sub Commande2_Click()
On Error GoTo Err_Commande2_Click
 
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim Direction As String
     
    If Not IsNull(Me.AbrevEts) Then
    Direction = "SELECT * from ETABLISSEMENTS where ETABLISSEMSENTS.NumEts=" & Me.AbrevEts
    End If
     
     
    stDocName = "Direction"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
 
Exit_Commande2_Click:
    Exit Sub
 
Err_Commande2_Click:
    MsgBox Err.Description
    Resume Exit_Commande2_Click
     
End Sub

n°1580515
La poisse1
Posté le 28-06-2007 à 16:58:47  profilanswer
 

mais il ne fait pas le tri
 

n°1580518
jpcheck
Pioupiou
Posté le 28-06-2007 à 17:19:46  profilanswer
 

affichage > mode SQL...  :sol:

n°1580549
La poisse1
Posté le 28-06-2007 à 19:12:15  profilanswer
 

oh p**** mais quel con... excuse moi d'etre un peu vulgos' mai y'a des fois moyen de perdre une journée de taf parceque on ne se sert pas de ces yeux, c'est genant
 
bon. je fais ca des demain matin et je te donne tout ca

n°1580638
La poisse1
Posté le 29-06-2007 à 09:17:52  profilanswer
 

voila ma requete, en mode sql. pour la partie mandat.dateFin is null c'est parce que je garde tous les directeurs depuis le dbt, comme je ne veux voir que les directeurs actuels je fais mon tri la dessus.
 
 
SELECT FONCTIONS.NomFct, RESPONSABLES.NomRes, RESPONSABLES.PrenRes, RESPONSABLES.TelephoneRes, RESPONSABLES.MailRes, MANDATS.DateDeb, ETABLISSEMENTS.AbrevEts
FROM RESPONSABLES INNER JOIN (FONCTIONS INNER JOIN (ETABLISSEMENTS INNER JOIN MANDATS ON ETABLISSEMENTS.NumEts = MANDATS.NumEts) ON FONCTIONS.NumFct = MANDATS.NumFct) ON RESPONSABLES.NumRes = MANDATS.NumRes
WHERE (((MANDATS.DateFin) Is Null));

n°1580727
jpcheck
Pioupiou
Posté le 29-06-2007 à 11:37:42  profilanswer
 

l'idée c'est de rajouter dans ta clause where l'identifiant de l'établissement
" and etablissements.nom_etablissement" enfin je connais pas le champs exact..

n°1580740
La poisse1
Posté le 29-06-2007 à 11:56:55  profilanswer
 

ok... et ce sera en corellation avec mon formulaire ou pas?

n°1580746
jpcheck
Pioupiou
Posté le 29-06-2007 à 12:15:52  profilanswer
 

oui, normalement  :D  
le plus efficace est de te créer une fonction Lit_EtablissementID() qui te retourne le numéro de l'établissement
et après update de la liste box tu fait un .requery
 
donc
1/ créer la fonction Lit_etablissementID
2/ mettre dans la source destination la requete donnée trois posts plus haut
3/ liée l'evenement after_update de la liste box et y mettre zone_de_texte.requery

n°1580756
La poisse1
Posté le 29-06-2007 à 12:32:53  profilanswer
 

wow!!!
mes lignes de Codes sont écrites derrière mon bouton avec les liens avec tout ce qu'il faut. je les passe dans la partie de mon formulaire After Update c'est ca?  
qu'est ce que je dois mettre dans mon module Lit_etablissement?
un truc du style "va chercher ce qui est ecrit dans la partie AfterUpdate"
et la troisième etape elle me fait signer du nez kan j'essaye de trouver ce qu'il faut que je fasse ...lol

n°1580817
La poisse1
Posté le 29-06-2007 à 14:37:48  profilanswer
 

a l'aide! je voi pas koi faire ou...

n°1584923
La poisse1
Posté le 10-07-2007 à 18:01:10  profilanswer
 

encore un petic coup de pousse serait le bienvenu...

n°1585042
jpcheck
Pioupiou
Posté le 11-07-2007 à 08:56:18  profilanswer
 

la fonction litetablissement te retourne la valeur de l'établissement choisi.
 
dans l'evenement afterupdate tu mets
lazonedetexteamettreajour.requery

n°1585558
La poisse1
Posté le 12-07-2007 à 09:44:37  profilanswer
 

j'ai une fonction LectureText, dans un module séparé.
dans ma fonction, il n'y a rien, a part ca:
Public Function LectureText( ZoneEntree,ZoneSortie)
     
     ZoneSortie = ZoneEntree
 
EndFunction
 
j'appelle ma fonction sur l'evenement OnClick, avant l'ouverture du formulaire, et je l'écris comme ceci:
 
LectureText NomEtablissement.Value, ""
 
 
ensuite, dans le formulaire suivant, que j'ouvre par le bouton précédent,  
 
j'ai écris:
 
Private Sub NomEtablissement_BeforeUpdate(Cancel As Integer)
 
    NomEtablissement.Value = LectureText("", NomEtablissement)
     
     
     
End Sub

n°1585560
La poisse1
Posté le 12-07-2007 à 09:45:19  profilanswer
 

et evidement, y'a pas d'erreur, mais y' a rien qui marche non plus...

n°1585583
jpcheck
Pioupiou
Posté le 12-07-2007 à 10:04:13  profilanswer
 

j'aurais plus mis ca dans after_upadte

n°1585599
La poisse1
Posté le 12-07-2007 à 10:24:48  profilanswer
 

pas bete du tout... du coup il passe par les lignes de code que j'ai écrite... merci.
maintenant il me demande d'entrer un paramètre pour la valeur de paramètre a ma requete SQL que voici:
 
SELECT Tbl_C2_Service.NomService, Tbl_C2_Service.NumHopital, Tbl_C2_Service.NumAtmRef, Tbl_C2_Service.NumService
FROM Tbl_C2_Service;
 
oui, on est descendu dans l'arborescence de mes tables: on essaye plus de passer le nom de l'etablissement mais le nom du service... le pb est le meme...
 

n°1585613
jpcheck
Pioupiou
Posté le 12-07-2007 à 10:38:27  profilanswer
 

s'il te demande une valeur, c'est que le champs n'existe pas.
n'oublie pas d'ajouter dans ta requete une clause where pour les infos d'un service/établissement/etc. précis.

n°1585629
La poisse1
Posté le 12-07-2007 à 10:58:49  profilanswer
 

est ce que je peux mettre dans ma requete la valeur de ma variable ZoneSortie?  
 
comme ca je créé ma requete de telle facon que mon formulaire se cantonne a afficher les salles de mon service uniquement... en fait c'est ce que tu me conseilles depuis le début... pardon...

n°1585631
jpcheck
Pioupiou
Posté le 12-07-2007 à 11:00:56  profilanswer
 

:ange:

n°1585641
La poisse1
Posté le 12-07-2007 à 11:18:35  profilanswer
 

j'ai essayé, je te promet... mais ca ne fonctionne pas... je trouve pas ma variable ZoneSortie, et comme je parle pas le SQL, je ne sais pas quoi ecrire...  

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Access] programmer une requete a partir d'un formulaire

 

Sujets relatifs
requête avec condition if contenant du texteRenommer un classeur via macro à partir d'un classeur différent
Probleme [VBA] importation données excel dans Access[Access] MS Access runtime qui ne reconnait pas mes fichiers Access ??
Requête complexe : probable jointure externelistbox multiselection et formulaire
récupérer des données d'un "multi" formulaire[SQL 2005] Problème pour une requête SELECT
besoin d'aide pour requete mysql[MySQl] erreur bizarre dans une requete
Plus de sujets relatifs à : [Access] programmer une requete a partir d'un formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR