Formulaire de recherche
MrJacky7
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
MrJacky7 Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
MrJacky7 Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis débutant c'est la première fois que j'utilise du VB donc j'ai sans aucun doute écris des erreurs stupides...
Pour réaliser un formulaire de recherche j'ai suivi ce tuto :
http://learnup.fr/
tout fonctionne bien jusqu'à que j'arrive à la partie :
" Voici donc les codes à recopier pour les boutons, en événement 'Sur Clic' "(un peu après le milieu du tuto).
Après cette partie je ne vois aucune modification de mon formulaire même après avoir tapé tout le code de toutes les étapes...
Voici à quoi ressemble mon formulaire en pièce jointe.
Option Compare Database
Private Sub chkIngredients_Click()
If Me.chkIngredients Then
Me.cmbRechIngredients.Visible = False
Else
Me.cmbRechIngredients.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkCode_A_Click()
If Me.ChkCode_A Then
Me.cmbRechCode_A.Visible = False
Else
Me.cmbRechCode_A.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkCode_F_Click()
If Me.ChkCode_F Then
Me.cmbRechCode_F.Visible = False
Else
Me.cmbRechCode_F.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkCode_C_Click()
If Me.ChkCode_C Then
Me.cmbRechCode_C.Visible = False
Else
Me.cmbRechCode_C.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkProduit_Click()
If Me.ChkProduit Then
Me.cmbRechProduit.Visible = False
Else
Me.cmbRechProduit.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkDescription_Document_Click()
If Me.chkDescription_Document Then
Me.cmbRechDescription_Document.Visible = False
Else
Me.cmbRechDescription_Document.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkFamille_Produit_Click()
If Me.chkFamille_Produit Then
Me.cmbRechFamille_Produit.Visible = False
Else
Me.cmbRechFamille_Produit.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkReference_Click()
If Me.chkReference Then
Me.cmbRechReference.Visible = False
Else
Me.cmbRechReference.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkPhase_cycle_de_vie_Click()
If Me.chkPhase_cycle_de_vie Then
Me.cmbRechPhase_cycle_de_vie.Visible = False
Else
Me.cmbRechPhase_cycle_de_vie.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkDescription_Code_F_Click()
If Me.ChkDescription_Code_F Then
Me.cmbRechDescription_Code_F.Visible = False
Else
Me.cmbRechDescription_Code_F.Visible = True
End If
RefreshQuery
End Sub
Private Sub cmbRechPhase_cycle_de_vie_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechIngredients_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechCode_A_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechCode_F_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechDescriptionCode_F_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechCode_C_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechProduit_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechDescriptionDocument_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechFamille_Produit_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechReference_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String
SQL = "SELECT Nom_Documents, Document, Ingredients, Code_A, Code_F, Description_Code_F, Produit, Description_Produit, Code_C, Famille_Produit, Reference, Phase_cycle_de_vie FROM Table_Document Where Table_Document!Nom_Documents"
If Not Me.chkIngredients Then
SQL = SQL & "And Table_Document!Ingredients = '" & Me.cmbRechIngredients & "' "
End If
If Not Me.ChkCode_A Then
SQL = SQL & "And Table_Document!Code_A = '" & Me.cmbRechCode_A & "' "
End If
If Not Me.ChkCode_F Then
SQL = SQL & "And Table_Document!Code_F = '" & Me.cmbRechCode_F & "' "
End If
If Not Me.ChkDescription_Code_F Then
SQL = SQL & "And Table_Document!Description_Code_F = '" & Me.cmbRechDescription_Code_F & "' "
End If
If Not Me.ChkProduit Then
SQL = SQL & "And Table_Document!Produit = '" & Me.cmbRechProduit & "' "
End If
If Not Me.chkDescription_Produit Then
SQL = SQL & "And Table_Document!Description_Produit = '" & Me.cmbRechDescription_Produit & "' "
End If
If Not Me.ChkCode_C Then
SQL = SQL & "And Table_Document!Code_C = '" & Me.cmbRechCode_C & "' "
End If
If Not Me.chkFamille_Produit Then
SQL = SQL & "And Table_Document!Famille_Produit = '" & Me.cmbRechFamille_Produit & "' "
End If
If Not Me.chkReference Then
SQL = SQL & "And Table_Document!Reference = '" & Me.cmbRechReference & "' "
End If
If Not Me.chkPhase_cycle_de_vie Then
SQL = SQL & "And Table_Document!Phase_cycle_de_vie = '" & Me.cmbRechPhase_cycle_de_vie & "' "
End If
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
SQL = SQL & ";"
Me.lblStats.Caption = DCount("*", "Table_Document", SQLWhere) & " / " & DCount("*", "Table_Document")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub
Private Sub Form_Current()
End Sub
Private Sub lstResults_DblClick(Cancel As Integer)
DoCmd.OpenForm "Saisie_Document", acNormal, , "[Nom_Documents] = " & Me.lstResults
End Sub
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 "lbl"
ctl.Caption = "- * - * -"
Case "cmb"
ctl.Visible = False
End Select
Next ctl
Me.lstResults.RowSource = "SELECT Nom_Documents, Document, Ingredients, Code_A, Code_F, Description_Code_F, Produit, Description_Produit, Code_C, Famille_Produit, Reference, Phase_cycle_de_vie FROM Table_Document;"
Me.lstResults.Requery
End Sub
De plus mes listes déroulantes possèdent des enregistrements de plusieurs mots, est-il possible de faire une recherche par groupes de lettres composant mes enregistrements au lieu des caractères de début de mot.
Actuellement le code est : ("description" est le champs composant ma liste déroulante)
"SELECT table_Livres.description FROM table_Livres GROUP BY table_Livres.description ORDER BY table_Livres.description;"
Ce code classe par ordre alphabétique et évite les doublons.
Je suis conscient que j'en demande beaucoup, mais j'espère que certains auront le courage d'arriver jusqu'ici, MERCI !
Je suis débutant c'est la première fois que j'utilise du VB donc j'ai sans aucun doute écris des erreurs stupides...
Pour réaliser un formulaire de recherche j'ai suivi ce tuto :
http://learnup.fr/
tout fonctionne bien jusqu'à que j'arrive à la partie :
" Voici donc les codes à recopier pour les boutons, en événement 'Sur Clic' "(un peu après le milieu du tuto).
Après cette partie je ne vois aucune modification de mon formulaire même après avoir tapé tout le code de toutes les étapes...
Voici à quoi ressemble mon formulaire en pièce jointe.
Option Compare Database
Private Sub chkIngredients_Click()
If Me.chkIngredients Then
Me.cmbRechIngredients.Visible = False
Else
Me.cmbRechIngredients.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkCode_A_Click()
If Me.ChkCode_A Then
Me.cmbRechCode_A.Visible = False
Else
Me.cmbRechCode_A.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkCode_F_Click()
If Me.ChkCode_F Then
Me.cmbRechCode_F.Visible = False
Else
Me.cmbRechCode_F.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkCode_C_Click()
If Me.ChkCode_C Then
Me.cmbRechCode_C.Visible = False
Else
Me.cmbRechCode_C.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkProduit_Click()
If Me.ChkProduit Then
Me.cmbRechProduit.Visible = False
Else
Me.cmbRechProduit.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkDescription_Document_Click()
If Me.chkDescription_Document Then
Me.cmbRechDescription_Document.Visible = False
Else
Me.cmbRechDescription_Document.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkFamille_Produit_Click()
If Me.chkFamille_Produit Then
Me.cmbRechFamille_Produit.Visible = False
Else
Me.cmbRechFamille_Produit.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkReference_Click()
If Me.chkReference Then
Me.cmbRechReference.Visible = False
Else
Me.cmbRechReference.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkPhase_cycle_de_vie_Click()
If Me.chkPhase_cycle_de_vie Then
Me.cmbRechPhase_cycle_de_vie.Visible = False
Else
Me.cmbRechPhase_cycle_de_vie.Visible = True
End If
RefreshQuery
End Sub
Private Sub chkDescription_Code_F_Click()
If Me.ChkDescription_Code_F Then
Me.cmbRechDescription_Code_F.Visible = False
Else
Me.cmbRechDescription_Code_F.Visible = True
End If
RefreshQuery
End Sub
Private Sub cmbRechPhase_cycle_de_vie_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechIngredients_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechCode_A_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechCode_F_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechDescriptionCode_F_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechCode_C_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechProduit_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechDescriptionDocument_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechFamille_Produit_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub cmbRechReference_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String
SQL = "SELECT Nom_Documents, Document, Ingredients, Code_A, Code_F, Description_Code_F, Produit, Description_Produit, Code_C, Famille_Produit, Reference, Phase_cycle_de_vie FROM Table_Document Where Table_Document!Nom_Documents"
If Not Me.chkIngredients Then
SQL = SQL & "And Table_Document!Ingredients = '" & Me.cmbRechIngredients & "' "
End If
If Not Me.ChkCode_A Then
SQL = SQL & "And Table_Document!Code_A = '" & Me.cmbRechCode_A & "' "
End If
If Not Me.ChkCode_F Then
SQL = SQL & "And Table_Document!Code_F = '" & Me.cmbRechCode_F & "' "
End If
If Not Me.ChkDescription_Code_F Then
SQL = SQL & "And Table_Document!Description_Code_F = '" & Me.cmbRechDescription_Code_F & "' "
End If
If Not Me.ChkProduit Then
SQL = SQL & "And Table_Document!Produit = '" & Me.cmbRechProduit & "' "
End If
If Not Me.chkDescription_Produit Then
SQL = SQL & "And Table_Document!Description_Produit = '" & Me.cmbRechDescription_Produit & "' "
End If
If Not Me.ChkCode_C Then
SQL = SQL & "And Table_Document!Code_C = '" & Me.cmbRechCode_C & "' "
End If
If Not Me.chkFamille_Produit Then
SQL = SQL & "And Table_Document!Famille_Produit = '" & Me.cmbRechFamille_Produit & "' "
End If
If Not Me.chkReference Then
SQL = SQL & "And Table_Document!Reference = '" & Me.cmbRechReference & "' "
End If
If Not Me.chkPhase_cycle_de_vie Then
SQL = SQL & "And Table_Document!Phase_cycle_de_vie = '" & Me.cmbRechPhase_cycle_de_vie & "' "
End If
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
SQL = SQL & ";"
Me.lblStats.Caption = DCount("*", "Table_Document", SQLWhere) & " / " & DCount("*", "Table_Document")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub
Private Sub Form_Current()
End Sub
Private Sub lstResults_DblClick(Cancel As Integer)
DoCmd.OpenForm "Saisie_Document", acNormal, , "[Nom_Documents] = " & Me.lstResults
End Sub
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 "lbl"
ctl.Caption = "- * - * -"
Case "cmb"
ctl.Visible = False
End Select
Next ctl
Me.lstResults.RowSource = "SELECT Nom_Documents, Document, Ingredients, Code_A, Code_F, Description_Code_F, Produit, Description_Produit, Code_C, Famille_Produit, Reference, Phase_cycle_de_vie FROM Table_Document;"
Me.lstResults.Requery
End Sub
De plus mes listes déroulantes possèdent des enregistrements de plusieurs mots, est-il possible de faire une recherche par groupes de lettres composant mes enregistrements au lieu des caractères de début de mot.
Actuellement le code est : ("description" est le champs composant ma liste déroulante)
"SELECT table_Livres.description FROM table_Livres GROUP BY table_Livres.description ORDER BY table_Livres.description;"
Ce code classe par ordre alphabétique et évite les doublons.
Je suis conscient que j'en demande beaucoup, mais j'espère que certains auront le courage d'arriver jusqu'ici, MERCI !

A voir également:
- Formulaire de recherche
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Formulaire de reclamation instagram - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
3 réponses
Bonjour,
question:
chkIngredients_Click semblerait que ce soit pour une checkbox et vous n'en avez aucune ???????
question:
chkIngredients_Click semblerait que ce soit pour une checkbox et vous n'en avez aucune ???????
Bonjour,
personne a des idées?
Merci
personne a des idées?
Merci
Re,
j'ai vu cette personne qui modifie son code mais je ne m'y connait pas assez pour savoir quoi changer :
https://www.developpez.net/forums/d828622/logiciels/microsoft-office/access/requetes-sql/recherche-multicritere-champs-plusieurs-valeurs/
j'ai vu cette personne qui modifie son code mais je ne m'y connait pas assez pour savoir quoi changer :
https://www.developpez.net/forums/d828622/logiciels/microsoft-office/access/requetes-sql/recherche-multicritere-champs-plusieurs-valeurs/
Bonjour,
voici ma bdd : https://www.cjoint.com/c/EFmjiMKNOsj
j'ai suivis ce tuto : http://claudeleloup.developpez.com/t...-multicritere/
Je n'ai pas poursuivis après la partie VII-B car malgré que je comprenne le pourquoi de la majorité des étapes, le comment reste à éclaircir sur certains points à mon avis.
Je n'arrive pas à saisir en quoi concerne le oui ou non pour "Limiter à liste".
Aussi pour dans le V il fait un filte "du" et "au", n'est il pas possible de faire une recherche par critère contenus avec ce code dans les zones de liste?
J'ai fais exactement comme dans le tutoriel, mon formulaire basé sur une requête,
dès que j'attaque les critères de ma requête l'affichage de mes champs dans mon formulaire disparait.
De plus les zones de listes et zone de texte pour ma recherche n'ont pas l'air de fonctionner complètement.
Pour l'affichage par défaut de mon formulaire j'ai mis "formulaire continus" car "Mode continu" cité dans le tutoriel n'existe pas,
Le tutoriel n'est pas adapté au champs multi valués?
Ou ce qui est fort possible, j'ai fait une boulette!
J'offre du pinard à celui qui me fait fonctionner tout ça!
Merci
voici ma bdd : https://www.cjoint.com/c/EFmjiMKNOsj
j'ai suivis ce tuto : http://claudeleloup.developpez.com/t...-multicritere/
Je n'ai pas poursuivis après la partie VII-B car malgré que je comprenne le pourquoi de la majorité des étapes, le comment reste à éclaircir sur certains points à mon avis.
Je n'arrive pas à saisir en quoi concerne le oui ou non pour "Limiter à liste".
Aussi pour dans le V il fait un filte "du" et "au", n'est il pas possible de faire une recherche par critère contenus avec ce code dans les zones de liste?
J'ai fais exactement comme dans le tutoriel, mon formulaire basé sur une requête,
dès que j'attaque les critères de ma requête l'affichage de mes champs dans mon formulaire disparait.
De plus les zones de listes et zone de texte pour ma recherche n'ont pas l'air de fonctionner complètement.
Pour l'affichage par défaut de mon formulaire j'ai mis "formulaire continus" car "Mode continu" cité dans le tutoriel n'existe pas,
Le tutoriel n'est pas adapté au champs multi valués?
Ou ce qui est fort possible, j'ai fait une boulette!
J'offre du pinard à celui qui me fait fonctionner tout ça!
Merci
alors ce serais peu être pour ça, j'ai peut être confondu les checkbox avec les boutons bascule?
Mais dans ce tuto :
http://learnup.fr/
il utilise chk... pour les boutons bascule
Merci
Oui, en effet y a pas de checkbox, mais des boutons a bascule (ToggleButton) et "normalement" Chk est une des abreviations utilisees pour CheckBox.
Il faudrait votre fichier pour voir ce qui ne va pas (sans donnees sensibles)
Pour transmettre un fichier,
il faut passer par un site de pièce jointe tel que cjoint.com
Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
A+
https://www.cjoint.com/c/EFjhXLnzlVj
ce n'est pas la dernière sauvegarde par contre,
je n'ai pas changé les bouton bascule en checkbox sur cette version...
Merci pour tout :)
Ne changer rien a vos boutons !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
correspond a quoi car erreur
chkDescription_Produit doit être une erreur car seul Description_Document ou Description_Code_F existe !