anadeveloppeur
Messages postés153Date d'inscriptionsamedi 10 septembre 2005StatutMembreDernière intervention21 février 2019
-
15 mai 2007 à 22:52
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
16 mai 2007 à 02:53
Bonsoir, j'espère que j'ai posté dans le bon forum (je n'ai pas toruvé plus mieux)
Je veux créer un formulaire de recherche sous Access, qui prend en considération plusieurs critères et qui recherche dans plusieurs tables.
Par exemple on veut les personnes qui ont fait une formation (la table formation) et qui ont l’échelle 9 (table échelle) …
Si vous avez une idée ça serait la bienvenue.
Merci d’avance
amikove
Messages postés42Date d'inscriptionsamedi 11 novembre 2006StatutMembreDernière intervention15 juin 2008 15 mai 2007 à 23:07
ui ui j'ai fais la requete, mais le pti probleme qui reste c'est que dans la forme graphique que j'ai creer, il y'a plusieurs critéres, et l'utilisateur peut remplire certains champs et pas des autres...mais la requetes prend en charge aussi les champs que l'utilisateur n'a pas rempli (comme des vides) alors elle cherche les champs qui sont vides...
je veux que la requete prend en charge seulment les champs qui sont differents du null
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 15 mai 2007 à 23:51
Bonsoir,
Il faut commencer par construire ton Expression Sql.
Pour ça tu procèdes ainsi:
Dim sQuery As String
sQuery = "SELECT * FROM TaTable"
Ensuite tu testes un par un sur les critères renseignés.
Le mieux serait que tes textbox soient indéxés et que
chaque index correspond à l' index du champ correspondant
Dim i As Integer,LePremier As Integer
'tu declares une variable
'Tu cherche ensuite le premier critère renseigné (très important
pour avoir un WHERE en premier)
For i=0 To LeDernier
If TextBox(i)<>"" Then
LePremier=i
sQuery=sQuery & " WHERE TaTable.Fields(" & i & ")='" & TextBox(i) & "'"
Exit For
End If
Next i
'tu teste pour savoir si tu n' est pas arrivé au dernier TextBox
If LePremier <LeDernier Then
'tu continues ensuite pour les autres critères à partir du premier renseigné
For i=LePremier To LeDernier
If TextBox(i)<>"" Then
sQuery=sQuery & " AND TaTable.Fields(" & i & ")='" & TextBox(i) & "'"
End If
Next
End If
Remarque : si aucun critère n' est renseigné ta requête
se résumera à : "SELECT * FROM TaTable"