Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Saisir dans TextBox et filtrer valeurs dans ListBox

7 réponses
Avatar
access13090
Bonjour à toute la communauté,

Je viens vers vous pour un petit coup de pouce.

J'ai un form independant contenant une TextBox et une ListBox.
Le but de ce form :
- saisir dans la TextBox quelques lettres et réduire la liste des
valeurs dans la ListBox.
- faire un doubleclic sur l'une des valeurs de ma ListBox pour ouvrir
un autre formulaire un mode d'affiche formulaire unique.

Sur l'évènement Change() de ma TextBox, j'ai la procédure suivante:
Private Sub NomTextBox_Change()
Dim StrSQl As String
If Me.NomTextBox.Text <> "" Then
StrSQl = "SELECT MaTbl.Champ2 FROM MaTbl WHERE MaTbl.Champ2 Like '" &
Me.NomTextBox.Text & "*'"
Else
StrSQl = "SELECT MaTbl.Champ2 FROM MaTbl"
End If
Me.NomListBox.RowSource = StrSQl
Me.NomListBox.Requery
End Sub

Sur l'évènement DblClick() de ma ListBox, j'ai la procédure suivante:
Private Sub NomListBox_DblClick(Cancel As Integer)
DoCmd.OpenForm "FormArticle", , ,
"[Champ2]=[Formulaires]![FormRecherche]![NomListBox]"
End Sub

Jusqu'ici tout fonctionne.

Existe-t-il selon vous une possibilité :
- soit de saisir les quelques premières lettres dans ma TextBox,
visualiser le résultat dans ma ListBox, pour exécuter un clic ou un
doubleclic sur ma TextBox et ouvrir un formulaire en mode d'affichage
Formulaires continus qui m'affichera alors les résultats
- soit de pouvoir sélectionner toutes les valeurs restantes de ma
ListBox et par clic ou doubleclic ouvrir un formulaire en mode
d'affichage Formulaires continus qui m'affichera tous les résultats

Merci d'avance

7 réponses

Avatar
3stone
Salut,

"access13090"
| J'ai un form independant contenant une TextBox et une ListBox.
| Le but de ce form :
| - saisir dans la TextBox quelques lettres et réduire la liste des
| valeurs dans la ListBox.
| - faire un doubleclic sur l'une des valeurs de ma ListBox pour ouvrir
| un autre formulaire un mode d'affiche formulaire unique.
|
| Sur l'évènement Change() de ma TextBox, j'ai la procédure suivante:
| Private Sub NomTextBox_Change()
| Dim StrSQl As String
| If Me.NomTextBox.Text <> "" Then
| StrSQl = "SELECT MaTbl.Champ2 FROM MaTbl WHERE MaTbl.Champ2 Like '" &
| Me.NomTextBox.Text & "*'"
| Else
| StrSQl = "SELECT MaTbl.Champ2 FROM MaTbl"
| End If
| Me.NomListBox.RowSource = StrSQl
| Me.NomListBox.Requery
| End Sub
|
| Sur l'évènement DblClick() de ma ListBox, j'ai la procédure suivante:
| Private Sub NomListBox_DblClick(Cancel As Integer)
| DoCmd.OpenForm "FormArticle", , ,
| "[Champ2]=[Formulaires]![FormRecherche]![NomListBox]"
| End Sub
|
| Jusqu'ici tout fonctionne.
|
| Existe-t-il selon vous une possibilité :
| - soit de saisir les quelques premières lettres dans ma TextBox,
| visualiser le résultat dans ma ListBox, pour exécuter un clic ou un
| doubleclic sur ma TextBox et ouvrir un formulaire en mode d'affichage
| Formulaires continus qui m'affichera alors les résultats
| - soit de pouvoir sélectionner toutes les valeurs restantes de ma
| ListBox et par clic ou doubleclic ouvrir un formulaire en mode
| d'affichage Formulaires continus qui m'affichera tous les résultats


Puisque les critères limitent correctement ta LisBox, utilise les
même pour ouvrir ton formulaire, non ?

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
access13090
Bonjour Pierre,

J'ai effectivement placé sur l'évènement Click() de ma TextBox, j'ai la
procédure suivante:

Private Sub NomTextBox_Click(Cancel As Integer)
DoCmd.OpenForm "FormArticle", , ,
"[Champ2]=[Formulaires]![FormRecherche]![NomTextBox]"
End Sub

En l'état si j'exécute le clic sur ma TextBox, le formulaire s'ouvre
mais vide d'enregistrements. Ce qui est logique puisque la valeur
saisie (quelques premières lettres) dans ma TextBox n'existe pas, sauf
et peut être à de rares occasions.

Je n'arrive pas à trouver la bonne syntaxe pour intégrer la notion de
joker (like ..."*") dans DoCmd ...

Merci d'avance

3stone a émis l'idée suivante :
Salut,

"access13090"
J'ai un form independant contenant une TextBox et une ListBox.
Le but de ce form :
- saisir dans la TextBox quelques lettres et réduire la liste des
valeurs dans la ListBox.
- faire un doubleclic sur l'une des valeurs de ma ListBox pour ouvrir
un autre formulaire un mode d'affiche formulaire unique.

Sur l'évènement Change() de ma TextBox, j'ai la procédure suivante:
Private Sub NomTextBox_Change()
Dim StrSQl As String
If Me.NomTextBox.Text <> "" Then
StrSQl = "SELECT MaTbl.Champ2 FROM MaTbl WHERE MaTbl.Champ2 Like '" &
Me.NomTextBox.Text & "*'"
Else
StrSQl = "SELECT MaTbl.Champ2 FROM MaTbl"
End If
Me.NomListBox.RowSource = StrSQl
Me.NomListBox.Requery
End Sub

Sur l'évènement DblClick() de ma ListBox, j'ai la procédure suivante:
Private Sub NomListBox_DblClick(Cancel As Integer)
DoCmd.OpenForm "FormArticle", , ,
"[Champ2]=[Formulaires]![FormRecherche]![NomListBox]"
End Sub

Jusqu'ici tout fonctionne.

Existe-t-il selon vous une possibilité :
- soit de saisir les quelques premières lettres dans ma TextBox,
visualiser le résultat dans ma ListBox, pour exécuter un clic ou un
doubleclic sur ma TextBox et ouvrir un formulaire en mode d'affichage
Formulaires continus qui m'affichera alors les résultats
- soit de pouvoir sélectionner toutes les valeurs restantes de ma
ListBox et par clic ou doubleclic ouvrir un formulaire en mode
d'affichage Formulaires continus qui m'affichera tous les résultats




Puisque les critères limitent correctement ta LisBox, utilise les
même pour ouvrir ton formulaire, non ?


Avatar
Fabien
access13090 a écrit :
Bonjour Pierre,

J'ai effectivement placé sur l'évènement Click() de ma TextBox, j'ai la
procédure suivante:

Private Sub NomTextBox_Click(Cancel As Integer)
DoCmd.OpenForm "FormArticle", , ,
"[Champ2]=[Formulaires]![FormRecherche]![NomTextBox]"
End Sub

En l'état si j'exécute le clic sur ma TextBox, le formulaire s'ouvre
mais vide d'enregistrements. Ce qui est logique puisque la valeur saisie
(quelques premières lettres) dans ma TextBox n'existe pas, sauf et peut
être à de rares occasions.

Je n'arrive pas à trouver la bonne syntaxe pour intégrer la notion de
joker (like ..."*") dans DoCmd ...

Merci d'avance

3stone a émis l'idée suivante :
Salut,

"access13090"
J'ai un form independant contenant une TextBox et une ListBox.
Le but de ce form :
- saisir dans la TextBox quelques lettres et réduire la liste des
valeurs dans la ListBox.
- faire un doubleclic sur l'une des valeurs de ma ListBox pour ouvrir
un autre formulaire un mode d'affiche formulaire unique.

Sur l'évènement Change() de ma TextBox, j'ai la procédure suivante:
Private Sub NomTextBox_Change()
Dim StrSQl As String
If Me.NomTextBox.Text <> "" Then
StrSQl = "SELECT MaTbl.Champ2 FROM MaTbl WHERE MaTbl.Champ2 Like '" &
Me.NomTextBox.Text & "*'"
Else
StrSQl = "SELECT MaTbl.Champ2 FROM MaTbl"
End If
Me.NomListBox.RowSource = StrSQl
Me.NomListBox.Requery
End Sub

Sur l'évènement DblClick() de ma ListBox, j'ai la procédure suivante:
Private Sub NomListBox_DblClick(Cancel As Integer)
DoCmd.OpenForm "FormArticle", , ,
"[Champ2]=[Formulaires]![FormRecherche]![NomListBox]"
End Sub

Jusqu'ici tout fonctionne.

Existe-t-il selon vous une possibilité :
- soit de saisir les quelques premières lettres dans ma TextBox,
visualiser le résultat dans ma ListBox, pour exécuter un clic ou un
doubleclic sur ma TextBox et ouvrir un formulaire en mode d'affichage
Formulaires continus qui m'affichera alors les résultats
- soit de pouvoir sélectionner toutes les valeurs restantes de ma
ListBox et par clic ou doubleclic ouvrir un formulaire en mode
d'affichage Formulaires continus qui m'affichera tous les résultats




Puisque les critères limitent correctement ta LisBox, utilise les
même pour ouvrir ton formulaire, non ?






Salut,
del la mêm façon que tu limite ta liste tu limite ton jeux
d'enregistrements :
DoCmd.OpenForm "FormArticle", , ,"[Champ2] like '" &
[Formulaires]![FormRecherche]![NomListBox] & "*'"

@+
Avatar
access13090
Bonjour Fabien,
Grand merci
@+

Dans son message précédent, Fabien a écrit :

Salut,
del la mêm façon que tu limite ta liste tu limite ton jeux d'enregistrements
:
DoCmd.OpenForm "FormArticle", , ,"[Champ2] like '" &
[Formulaires]![FormRecherche]![NomListBox] & "*'"

@+


Avatar
access13090
Re bonjour,

La procédure fonctionne presque bien.
Si je fais juste après la saisie des quelques premières lettres le
doubleclic dans ma TxtBox mon FormArticle m'affiche tous les articles.
Il faut que je clic d'abord n'importe où dans le FormRecherche pour
ensuite faire mon doubleclic dans ma TextBox pour que mon FormArticle
m'affiche uniquement les articles conditionnés par la saisie des
quelques premières lettres.
Existerait-il une solution qui puisse éviter cette manipulation ?
Merci

Fabien a émis l'idée suivante :
access13090 a écrit :



Salut,
del la mêm façon que tu limite ta liste tu limite ton jeux d'enregistrements
:
DoCmd.OpenForm "FormArticle", , ,"[Champ2] like '" &
[Formulaires]![FormRecherche]![NomListBox] & "*'"

@+


Avatar
Fabien
access13090 a écrit :
Re bonjour,

La procédure fonctionne presque bien.
Si je fais juste après la saisie des quelques premières lettres le
doubleclic dans ma TxtBox mon FormArticle m'affiche tous les articles.
Il faut que je clic d'abord n'importe où dans le FormRecherche pour
ensuite faire mon doubleclic dans ma TextBox pour que mon FormArticle
m'affiche uniquement les articles conditionnés par la saisie des
quelques premières lettres.
Existerait-il une solution qui puisse éviter cette manipulation ?
Merci

Fabien a émis l'idée suivante :
access13090 a écrit :



Salut,
del la mêm façon que tu limite ta liste tu limite ton jeux
d'enregistrements :
DoCmd.OpenForm "FormArticle", , ,"[Champ2] like '" &
[Formulaires]![FormRecherche]![NomListBox] & "*'"

@+






re
remplace [Formulaires]![FormRecherche]![NomListBox] par
[Formulaires]![FormRecherche].[NomListBox].text
ou
[Formulaires]![FormRecherche].[NomListBox].value
@+
Avatar
access13090
Fabien
Un grand merci
@+
Fabien a présenté l'énoncé suivant :
Salut,
del la mêm façon que tu limite ta liste tu limite ton jeux
d'enregistrements :
DoCmd.OpenForm "FormArticle", , ,"[Champ2] like '" &
[Forms]![FormRecherche]![NomListBox] & "*'"

@+






re
remplace [Forms]![FormRecherche]![NomTextBox] par
[Forms]![FormRecherche].[NomTextBox].text
@+