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

problème avec ma recherche et ma Listbox

6 réponses
Avatar
Fabdu84
Bonjour,

J'ai cr=E9=E9 un formulaire de recherche avec une zone textbox et une
listbox. Ce formulaire va chercher la liste des valeurs dans un champ
"nom"

Lorsque je tape des lettres dans ma textbox, ma listbox (qui contient
la liste des valeurs de mon champ "nom") s'affine.

Mon probl=E8me : lorsque que je retrouve le nom souhait=E9 dans ma
listbox, je voudrais qu'en cliquant dessus, j'ouvre un autre
formulaire qui contient toues les informations rattach=E9 =E0 ce nom.

Hors lorsque je clique sur le nom d=E9sir=E9, mon formulaire s'ouvre mais
il est vierge, au lieu d'afficher tous les =E9l=E9ments (adresse, tel,
etc) qui lui sont li=E9s.

Merci pour votre aide.

Mon code:
Private Sub Form_Load()
Me.lstClient.RowSource =3D ""
Me.txtRecherche =3D ""
End Sub

Private Sub Form_Open(Cancel As Integer)
DoCmd.RunCommand acCmdSizeToFitForm
End Sub

Private Sub txtRecherche_Change()
Dim sSQL As String
sSQL =3D "SELECT tbl_final.Num=E9ro, tbl_final.nom_client FROM
tbl_final " _
& "WHERE tbl_final.nom_client Like '" & txtRecherche.Text &
"*';"

If Len(txtRecherche.Text) > 0 Then
Me.lstClient.RowSource =3D sSQL
Else
Me.lstClient.RowSource =3D ""
End If

End Sub
Private Sub lstCommune_AfterUpdate()
stDocName =3D "Fiche client"
stLinkCriteria =3D "[nom_client]=3D" & "'" & Forms!
frm_Recherche.lstClient & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub

6 réponses

Avatar
3stone
Salut,

Fabdu84 wrote:
Bonjour,

J'ai créé un formulaire de recherche avec une zone textbox et une
listbox. Ce formulaire va chercher la liste des valeurs dans un champ
"nom"

Lorsque je tape des lettres dans ma textbox, ma listbox (qui contient
la liste des valeurs de mon champ "nom") s'affine.

Mon problème : lorsque que je retrouve le nom souhaité dans ma
listbox, je voudrais qu'en cliquant dessus, j'ouvre un autre
formulaire qui contient toues les informations rattaché à ce nom.

Hors lorsque je clique sur le nom désiré, mon formulaire s'ouvre mais
il est vierge, au lieu d'afficher tous les éléments (adresse, tel,
etc) qui lui sont liés.

Merci pour votre aide.

Mon code:
Private Sub Form_Load()
Me.lstClient.RowSource = ""
Me.txtRecherche = ""
End Sub

Private Sub Form_Open(Cancel As Integer)
DoCmd.RunCommand acCmdSizeToFitForm
End Sub

Private Sub txtRecherche_Change()
Dim sSQL As String
sSQL = "SELECT tbl_final.Numéro, tbl_final.nom_client FROM
tbl_final " _
& "WHERE tbl_final.nom_client Like '" & txtRecherche.Text &
"*';"

If Len(txtRecherche.Text) > 0 Then
Me.lstClient.RowSource = sSQL
Else
Me.lstClient.RowSource = ""
End If

End Sub
Private Sub lstCommune_AfterUpdate()
stDocName = "Fiche client"
stLinkCriteria = "[nom_client]=" & "'" & Forms!
frm_Recherche.lstClient & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub




Ta liste contient probablement l'identifiant du client
en première colonne cachée...

le critère devient alors:

stLinkCriteria = "[id_client]=" & Forms!frm_Recherche.lstClient


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

Voilà mon nouveau code (mon id_client est Numéro):

Private Sub lstCommune_AfterUpdate()
stDocName = "Fiche client"
stLinkCriteria = "[Numéro]=" & Forms!frm_Recherche.lstClient
DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub

Access me met un message de débogage quand je clic sur un nom :
L'action OpenForm a été annulée... :-(
Avatar
3stone
re,

Fabdu84 wrote:
Merci.

Voilà mon nouveau code (mon id_client est Numéro):




oui, mais as tu regardé dans la source de ta liste ?
et... [Numéro] est bien un champ numérique ?...



Private Sub lstCommune_AfterUpdate()
stDocName = "Fiche client"




et ainsi :

stDocName = "[Fiche client]"


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Fabdu84
On 22 juin, 18:49, "3stone" wrote:
re,

Fabdu84 wrote:
> Merci.

> Voilà mon nouveau code (mon id_client est Numéro):

oui, mais as tu regardé dans la source de ta liste ?
et... [Numéro] est bien un champ numérique ?...




Oui j'ai regardé dans la source de ma liste : SELECT
tbl_final.nom_client FROM tbl_final WHERE nom_client Like '*';

[Numéro] est bien un champ numérique

Ajouter les [ ] pour le formulaire ne change rien.

Mais j'ai toujours le même souci. Quand je clique sur le nom souhaité,
j'ai un formulaire vierge qui s'ouvre au lieu d'être rattaché au nom
choisi.

Cordialement.
Avatar
RideHickul
'lut,

A priori tu as 2 problèmes sur ta ligne :
stLinkCriteria = "[nom_client]=" & "'" & Forms!frm_Recherche.lstClient &
"'"

1) la requete te renvoie en premier non pas le [nom_client] mais le [Numéro]
2) D'après les post précédents, ce champ est numérique

Donc :

1) Il faut mettre le champ [Numéro] à la place de [Nom_Client]
2) Il ne faut pas encardrer ton lstClient par des tildes (')

Soluce :

Remplace ta ligne :
stLinkCriteria = "[nom_client]=" & "'" & Forms!frm_Recherche.lstClient &
"'"

Par la suivante :
stLinkCriteria = "[Numéro]=" & Forms!frm_Recherche.lstClient

Si le problème persiste :
1) Dans les propriétés de la lstClient, vérifie sur l'onglet "Données" que
la propriété "Colonne liée" est bien sur 1
2) Sur ton form "Fiche Client" vérifie que tu as bien mis le champ [Numéro]

Je pense que cela devrait fonctionner ...

RideHickul.



"Fabdu84" a écrit dans le message de news:

Bonjour,

J'ai créé un formulaire de recherche avec une zone textbox et une
listbox. Ce formulaire va chercher la liste des valeurs dans un champ
"nom"

Lorsque je tape des lettres dans ma textbox, ma listbox (qui contient
la liste des valeurs de mon champ "nom") s'affine.

Mon problème : lorsque que je retrouve le nom souhaité dans ma
listbox, je voudrais qu'en cliquant dessus, j'ouvre un autre
formulaire qui contient toues les informations rattaché à ce nom.

Hors lorsque je clique sur le nom désiré, mon formulaire s'ouvre mais
il est vierge, au lieu d'afficher tous les éléments (adresse, tel,
etc) qui lui sont liés.

Merci pour votre aide.

Mon code:
Private Sub Form_Load()
Me.lstClient.RowSource = ""
Me.txtRecherche = ""
End Sub

Private Sub Form_Open(Cancel As Integer)
DoCmd.RunCommand acCmdSizeToFitForm
End Sub

Private Sub txtRecherche_Change()
Dim sSQL As String
sSQL = "SELECT tbl_final.Numéro, tbl_final.nom_client FROM
tbl_final " _
& "WHERE tbl_final.nom_client Like '" & txtRecherche.Text &
"*';"

If Len(txtRecherche.Text) > 0 Then
Me.lstClient.RowSource = sSQL
Else
Me.lstClient.RowSource = ""
End If

End Sub
Private Sub lstCommune_AfterUpdate()
stDocName = "Fiche client"
stLinkCriteria = "[nom_client]=" & "'" & Forms!
frm_Recherche.lstClient & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub
Avatar
Fabdu84
On 24 juin, 20:24, "RideHickul" wrote:
'lut,

A priori tu as 2 probl mes sur ta ligne :
    stLinkCriteria = "[nom_client]=" & "'" & Forms!frm_Recherche. lstClient &
"'"

1) la requete te renvoie en premier non pas le [nom_client] mais le [Num ro]
2) D'apr s les post pr c dents, ce champ est num rique

Donc :

1) Il faut mettre le champ [Num ro] la place de [Nom_Client]
2) Il ne faut pas encardrer ton lstClient par des tildes (')

Soluce :

Remplace ta ligne :
    stLinkCriteria = "[nom_client]=" & "'" & Forms!frm_Recherche. lstClient &
"'"

Par la suivante :
    stLinkCriteria = "[Num ro]=" & Forms!frm_Recherche.lstClient

Si le probl me persiste :
1) Dans les propri t s de la lstClient, v rifie sur l'onglet "Donn es" qu e
la propri t "Colonne li e" est bien sur 1
2) Sur ton form "Fiche Client" v rifie que tu as bien mis le champ [Num r o]

Je pense que cela devrait fonctionner ...

RideHickul.

"Fabdu84" a crit dans le message de news:

Bonjour,

J'ai cr un formulaire de recherche avec une zone textbox et une
listbox. Ce formulaire va chercher la liste des valeurs dans un champ
"nom"

Lorsque je tape des lettres dans ma textbox, ma listbox (qui contient
la liste des valeurs de mon champ "nom") s'affine.

Mon probl me : lorsque que je retrouve le nom souhait dans ma
listbox, je voudrais qu'en cliquant dessus, j'ouvre un autre
formulaire qui contient toues les informations rattach ce nom.

Hors lorsque je clique sur le nom d sir , mon formulaire s'ouvre mais
il est vierge, au lieu d'afficher tous les l ments (adresse, tel,
etc) qui lui sont li s.

Merci pour votre aide.

Mon code:
Private Sub Form_Load()
    Me.lstClient.RowSource = ""
    Me.txtRecherche = ""
End Sub

Private Sub Form_Open(Cancel As Integer)
    DoCmd.RunCommand acCmdSizeToFitForm
End Sub

Private Sub txtRecherche_Change()
    Dim sSQL As String
    sSQL = "SELECT tbl_final.Num ro, tbl_final.nom_client FROM
tbl_final " _
         & "WHERE tbl_final.nom_client Like '" & txtRecherche.T ext &
"*';"

    If Len(txtRecherche.Text) > 0 Then
        Me.lstClient.RowSource = sSQL
    Else
        Me.lstClient.RowSource = ""
    End If

End Sub
Private Sub lstCommune_AfterUpdate()
    stDocName = "Fiche client"
    stLinkCriteria = "[nom_client]=" & "'" & Forms!
frm_Recherche.lstClient & "'"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

End Sub



ça marche très bien. Merci beaucoup et bon weekend.

Cordialement