Vba access

lolo -  
blux Messages postés 27109 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je voudrais de l'aide en ce qui concerne un projet.
Donc je voudrais pouvoir faire une recherche multi criteres sur plusieurs tables et non une seule (je sais comment faire sur une seul mais j'arrive pas a adapter sur plusieurs )
J'ai creer une requete contenant tous les champs pouir lesquels je dois faire ma recherche ensuite j'ai crée des listes deroulantes dans lesquels j'ai attribuée les valeurs des tables correpondantes .Cad pour faitre une recherche sur le pays j'ai crée une liste deroulante qui prend en compte les valeurs du champs pays a l'aide de la table pays . et J'ai aussi crée des cases a cocher ....
Par ailleurs j'ai bien une liste d'elements qui s'affichent (avant de selectionner les criteres)mais quand je selectionne les différents criteres plus rien ne s'afffiche.j'ai tout essayé je sais plus quoi faire !!!!!
Voici mon code vba
//* pour charger des elements**/
Private Sub Form_Load()

Dim ctl As Control

For Each ctl In Me.Controls
Select Case Left(ctl.Name, 3)
Case "chk"
ctl.Value = -1

Case "ZT"
ctl.Visible = True

End Select
Next ctl

Me.lstResults.RowSource = "SELECT projet.Code_proj, projet.Nom_proj, destination.Nom_pays, bailleur.Nom_FI, Activité.Cat_act, projet.Stat_proj FROM ((Activité INNER JOIN projet ON Activité.Code_act = projet.Code_act) INNER JOIN (bailleur INNER JOIN fnancer ON bailleur.Num__bailleur = fnancer.Num_bailleur) ON projet.Code_proj = fnancer.Code_projet) INNER JOIN (destination INNER JOIN Réaliser ON destination.Code_dest = Réaliser.Code_dest) ON projet.Code_proj = Réaliser.Code_proj ;"

Me.lstResults.Requery


End Sub
/* pour faire la selection et afficher le resultat dans une listebox**/
Private Sub RefreshQuery()

Dim SQL As String
Dim SQLWhere As String


SQL = " SELECT projet.Code_proj, projet.Nom_proj, destination.Nom_pays, bailleur.Nom_FI, Activité.Cat_act, projet.Stat_proj FROM ((Activité INNER JOIN projet ON Activité.Code_act = projet.Code_act) INNER JOIN (bailleur INNER JOIN fnancer ON bailleur.Num__bailleur = fnancer.Num_bailleur) ON projet.Code_proj = fnancer.Code_projet) INNER JOIN (destination INNER JOIN Réaliser ON destination.Code_dest = Réaliser.Code_dest) ON projet.Code_proj = Réaliser.Code_proj Where code-projet<>0;"

If Me!chk_pays Then
SQL = SQL & "And destination ! Nom_pays = '" & Me!ZT_pays.RowSource & "' "
End If
If Me!chk_statut Then
SQL = SQL & "And projet !Stat_proj = '" & Me!ZT_stat.RowSource & "' "
End If
If Me!chk_activite Then
SQL = SQL & "And Activité !Cat_act = '" & Me!ZT_act.RowSource & "' "
End If
If Me!chk_fi Then
SQL = SQL & "And bailleur !Nom_FI = '" & Me!zt_fi.RowSource & " ' "
End If
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))

SQL = SQL & ";"


Me.lstResults.RowSource = SQL
Me.lstResults.Requery
aidez moi svp !!!!!!stac

2 réponses

lolo
 
bonjour,

je voudrais de l'aide en ce qui concerne un projet.
Donc je voudrais pouvoir faire une recherche multi criteres sur plusieurs tables et non une seule (je sais comment faire sur une seul mais j'arrive pas a adapter sur plusieurs )
J'ai creer une requete contenant tous les champs pouir lesquels je dois faire ma recherche ensuite j'ai crée des listes deroulantes dans lesquels j'ai attribuée les valeurs des tables correpondantes .Cad pour faitre une recherche sur le pays j'ai crée une liste deroulante qui prend en compte les valeurs du champs pays a l'aide de la table pays . et J'ai aussi crée des cases a cocher ....
Par ailleurs j'ai bien une liste d'elements qui s'affichent (avant de selectionner les criteres)mais quand je selectionne les différents criteres plus rien ne s'afffiche.j'ai tout essayé je sais plus quoi faire !!!!!
pouvez vous m'aider !!!!
0
blux Messages postés 27109 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

à mon avis, c'est que ton SQL n'est pas bon...

SQL = SQL & "And destination ! Nom_pays = '" & Me!ZT_pays.RowSource & "' "

Que vient faire un ! dans un nom de champ ? Ce ne serait pas plutôt un . ?
0