Access formulaire filtre

Fermé
pierre - 13 mai 2010 à 17:21
 pierre - 4 juin 2010 à 16:38
Bonjour,

C'est la premiere fois que je pose une question donc j'espere etre au bon endroit.. Bref, je travaille actuellement sur une base de donnees access.
J'ai donc creer plusieurs table que j'ai relie entre elles et que j'ai renseignees. (pas de probleme sur le MCD, il fonctionne correctement)

Maintenant je souhaiterai creer un fomulaire me permettant d'afficher certaines informations des tables que j'ai renseignee:

Table_actions --> champs_description action
T_test --> validation apres retouche
T_test --> Date test
T_composents --> Type_composant
T_combo --> Code_erreur

J'ai donc reussi a creer un formulaire qui me permet d'afficher les valeurs trier en fonction du composant que je choisi. Par exemple je choisi le composant "bouchon" et j'ai l'ensemble des infos Date test/Code erreur ect.... pour l'ensemble des enregistrements possedant "bouchon" comme component.... (idem pour les autres j'arrive a fiare un trie pour chaque champs)
Pour cela j'ai utilise ceci:


Private Sub Combo4_AfterUpdate()
' Find the record that matches the control.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[UID_action] = " & Str(Nz(Me![Combo4], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Mais maintenant,le probleme que je rencontre est que je n 'arrive pas a ajouter un deuxieme filtre. En gros j'aimerai affiner ma recherche en choississant par exemple "bouchon" et une date precise "12/12/09" afin d'avoir une recherche plus precise mais je comprend pas comment faire.

Si qqn a une reponse elle est la bien venue, en esperant avoir ete comprehensible...

3 réponses

mprog67 Messages postés 28 Date d'inscription mercredi 24 mars 2010 Statut Membre Dernière intervention 14 mai 2012 2
14 mai 2010 à 06:39
Salut voilà un exemple que j'espère vous aidera .
d'abord créez une requête puis le formulaire à partir de cette requête et interrogez cette dernière avec un code sql, à partir de cette exemple vous comprendrez :
ma requête est:ReqFichierPPA
mon formulaire est:FichierPPA

Private Sub SHP_Enter()
Dim dbscurrent As Database

Dim qrytest As QueryDef

Set dbscurrent = CurrentDb()

If Not IsNull(Me!NumLot) Then

Set qrytest = dbscurrent.QueryDefs("ReqFichierPPA")
qrytest.sql = "SELECT FichierPPA.RéfProduit, FichierPPA.PPA," & _
"FichierPPA.PUHT, FichierPPA.NumLot, FichierPPA.DatePér," & _
"FichierPPA.QtéStk, Produits.QtéEnStock FROM FichierPPA INNER JOIN Produits ON FichierPPA.RéfProduit = Produits.RéfProduit WHERE FichierPPA.RéfProduit Like '" & Me!RéfProduit & "'" & _
"And FichierPPA.PPA Like '" & Me!PPA & "*'" & _
"And FichierPPA!NumLot Like '" & Me!NumLot & "';"

Dim rst As Recordset
Set rst = Form_FichierPPA.Recordset

DoCmd.OpenForm ("FichierPPA")
If IsNull(Form_FichierPPA!QtéStk) Then
Form_FichierPPA!QtéStk = Me!QtéAch
Form_FichierPPA!QtéEnStock = Me!QtéAch
Else
Form_FichierPPA!QtéStk = Form_FichierPPA!QtéStk + Me!QtéAch
Form_FichierPPA!QtéEnStock = Form_FichierPPA!QtéEnStock + Me!QtéAch
End If
Else

Set qrytest = dbscurrent.QueryDefs("ReqFichierPPA")
qrytest.sql = "SELECT FichierPPA.RéfProduit, FichierPPA.PPA," & _
"FichierPPA.PUHT, FichierPPA.NumLot, FichierPPA.DatePér," & _
"FichierPPA.QtéStk, Produits.QtéEnStock FROM FichierPPA INNER JOIN Produits ON FichierPPA.RéfProduit = Produits.RéfProduit WHERE FichierPPA.RéfProduit Like '" & Me!RéfProduit & "'" & _
"And FichierPPA.PPA Like '" & Me!PPA & "*'" '& _
"And FichierPPA!NumLot Like '" & Me!NumLot & "';"

'Dim rst As Recordset
Set rst = Form_FichierPPA.Recordset

DoCmd.OpenForm ("FichierPPA")
If IsNull(Form_FichierPPA!QtéStk) Then
Form_FichierPPA!QtéStk = Me!QtéAch
Form_FichierPPA!QtéEnStock = Me!QtéAch
Else
Form_FichierPPA!QtéStk = Form_FichierPPA!QtéStk + Me!QtéAch
Form_FichierPPA!QtéEnStock = Form_FichierPPA!QtéEnStock + Me!QtéAch
End If

End If
End Sub
0
OK, merci je vais essayer de regarder tt ca ds le week end car pour aujourd'hui c tendu. Je suis pas trop un pro du SQL ou VBA donc je suis pas sur de reussir a reproduire ton exemple mais juste une ptite question :

Est-ce normal que tu es deux fois la meme chose....

Et sinon d'autre question rapide



"SELECT FichierPPA.RéfProduit, FichierPPA.PPA," & _
"FichierPPA.PUHT, FichierPPA.NumLot, FichierPPA.DatePér," & _
"FichierPPA.QtéStk, Produits.QtéEnStock FROM FichierPPA INNER JOIN Produits ON FichierPPA.RéfProduit = Produits.RéfProduit WHERE FichierPPA.RéfProduit Like '" & Me!RéfProduit & "'" & _
"And FichierPPA.PPA Like '" & Me!PPA & "*'" & _
"And FichierPPA!NumLot Like '" & Me!NumLot & "';"

J'imagien que les .RéfProduit ou .NumLot correspondent aux champs et moi ce serait du genre .Type_composant

Apres pk des fois tu en a deux avant d'avoir un & et des fois trois....

A partir de la
FichierPPA.RéfProduit = Produits.RéfProduit
je comprend pas trop ce que moi je dois choisir comme champs

Voila je regarde plus precisement ds le week end et on en reparle..
0
..........
0