je voudrais cr=E9er une form de recherche avec une textbox=20
et une Grid pour :
quand j'ouvre la feuille cela m'affiche toutes les donn=E9es=20
d'une base Access, cela je sais faire, mais
je voudrais =E0 la frappe d'une lettre dans la texbox=20
afficher toutes les donn=E9es qui commencent par cette=20
lettre et quand je frappe la deuxi=E8le lettre toutes les=20
donn=E9es qui commencent par ces deux lettres et ainsi de=20
suite, et l=E0 je ne sais pas faire
Une r=E9ponse m'aiderait beaucoup
Cordialement
JCM
merci pour ta reponse j'ai essayé le code suivant mais cela beug dans le select, il ne reconnait pas LgMot, peut etre ma requete est mal ecrite ? qu'en penses-tu ?
Private Sub TxtRecherche_Click() FrmRecherche.Caption = "Recherche d'un client" 'Affichage des enregistrements pour le client sélectionné Dim LgMot As Integer LgMot = LTrim(Len(TxtRecherche.Text))
Set ADOaf = New ADODB.Recordset With ADOaf .ActiveConnection = ADOcn .CursorType = adOpenDynamic .Open "Select client from affaire where left(client, LgMot)='" & TxtRecherche.Text + "'" End With 'remplissage de MSRecherche LaLigne% = 0 Do Until ADOaf.EOF LaLigne% = LaLigne% + 1 MSRecherche.FixedAlignment(0) = 4 MSRecherche.Rows = LaLigne% + 1 MSRecherche.Row = LaLigne% MSRecherche.Col = 0 MSRecherche.Text = ADOaf("client") ADOaf.MoveNext Loop End Sub
Merci de ta réponse Cordialement JCM
-----Message d'origine----- j'ai fait u ntruc dans le genre moi c'etait un combobox qui se remplis tout seul selon ce
qu'y a dedans
Bonjour
merci pour ta reponse
j'ai essayé le code suivant mais cela beug dans le select,
il ne reconnait pas LgMot, peut etre ma requete est mal
ecrite ? qu'en penses-tu ?
Private Sub TxtRecherche_Click()
FrmRecherche.Caption = "Recherche d'un client"
'Affichage des enregistrements pour le client sélectionné
Dim LgMot As Integer
LgMot = LTrim(Len(TxtRecherche.Text))
Set ADOaf = New ADODB.Recordset
With ADOaf
.ActiveConnection = ADOcn
.CursorType = adOpenDynamic
.Open "Select client from affaire where left(client,
LgMot)='" & TxtRecherche.Text + "'"
End With
'remplissage de MSRecherche
LaLigne% = 0
Do Until ADOaf.EOF
LaLigne% = LaLigne% + 1
MSRecherche.FixedAlignment(0) = 4
MSRecherche.Rows = LaLigne% + 1
MSRecherche.Row = LaLigne%
MSRecherche.Col = 0
MSRecherche.Text = ADOaf("client")
ADOaf.MoveNext
Loop
End Sub
Merci de ta réponse
Cordialement
JCM
-----Message d'origine-----
j'ai fait u ntruc dans le genre
moi c'etait un combobox qui se remplis tout seul selon ce
merci pour ta reponse j'ai essayé le code suivant mais cela beug dans le select, il ne reconnait pas LgMot, peut etre ma requete est mal ecrite ? qu'en penses-tu ?
Private Sub TxtRecherche_Click() FrmRecherche.Caption = "Recherche d'un client" 'Affichage des enregistrements pour le client sélectionné Dim LgMot As Integer LgMot = LTrim(Len(TxtRecherche.Text))
Set ADOaf = New ADODB.Recordset With ADOaf .ActiveConnection = ADOcn .CursorType = adOpenDynamic .Open "Select client from affaire where left(client, LgMot)='" & TxtRecherche.Text + "'" End With 'remplissage de MSRecherche LaLigne% = 0 Do Until ADOaf.EOF LaLigne% = LaLigne% + 1 MSRecherche.FixedAlignment(0) = 4 MSRecherche.Rows = LaLigne% + 1 MSRecherche.Row = LaLigne% MSRecherche.Col = 0 MSRecherche.Text = ADOaf("client") ADOaf.MoveNext Loop End Sub
Merci de ta réponse Cordialement JCM
-----Message d'origine----- j'ai fait u ntruc dans le genre moi c'etait un combobox qui se remplis tout seul selon ce
qu'y a dedans
Denis P
Bonjour JCM,
Tu devrais plutôt coder tout cela dans l'évènement Change de ta zone de texte plutôt que dans l'évènement Click, de cette façon chaque fois que tu entreras un caractère dans ta zone la recherche s'effectuera.
Ensuite, tu devrais changer cette ligne
LgMot = LTrim(Len(TxtRecherche.Text))
par celle-ci
LgMot = Len(Trim(TxtRecherche.Text))
simplement inverser ton Trim avec ton Len, parce que tu allais d'abord chercher la longueur de ta chaîne et ensuite tu effectuais ton Trim, alors que tu dois faire l'inverse.
Ensuite l'erreur dans ta requête.
.Open "SELECT client FROM affaire WHERE LEFT(client, " & LgMot & ") LIKE '" & Trim(TxtRechereche.Text) & "'"
Maintenant ça devrait fonctionner.
Denis P
"JCM" a écrit dans le message de news:0a0f01c3d46b$fbccad70$ Bonjour
merci pour ta reponse j'ai essayé le code suivant mais cela beug dans le select, il ne reconnait pas LgMot, peut etre ma requete est mal ecrite ? qu'en penses-tu ?
Private Sub TxtRecherche_Click() FrmRecherche.Caption = "Recherche d'un client" 'Affichage des enregistrements pour le client sélectionné Dim LgMot As Integer LgMot = LTrim(Len(TxtRecherche.Text))
Set ADOaf = New ADODB.Recordset With ADOaf .ActiveConnection = ADOcn .CursorType = adOpenDynamic .Open "Select client from affaire where left(client, LgMot)='" & TxtRecherche.Text + "'" End With 'remplissage de MSRecherche LaLigne% = 0 Do Until ADOaf.EOF LaLigne% = LaLigne% + 1 MSRecherche.FixedAlignment(0) = 4 MSRecherche.Rows = LaLigne% + 1 MSRecherche.Row = LaLigne% MSRecherche.Col = 0 MSRecherche.Text = ADOaf("client") ADOaf.MoveNext Loop End Sub
Merci de ta réponse Cordialement JCM
-----Message d'origine----- j'ai fait u ntruc dans le genre moi c'etait un combobox qui se remplis tout seul selon ce
qu'y a dedans
Bonjour JCM,
Tu devrais plutôt coder tout cela dans l'évènement Change de ta zone de
texte plutôt que dans l'évènement Click, de cette façon chaque fois que tu
entreras un caractère dans ta zone la recherche s'effectuera.
Ensuite, tu devrais changer cette ligne
LgMot = LTrim(Len(TxtRecherche.Text))
par celle-ci
LgMot = Len(Trim(TxtRecherche.Text))
simplement inverser ton Trim avec ton Len, parce que tu allais d'abord
chercher la longueur de ta chaîne et ensuite tu effectuais ton Trim, alors
que tu dois faire l'inverse.
Ensuite l'erreur dans ta requête.
.Open "SELECT client FROM affaire WHERE LEFT(client, " & LgMot & ") LIKE '"
& Trim(TxtRechereche.Text) & "'"
Maintenant ça devrait fonctionner.
Denis P
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news:0a0f01c3d46b$fbccad70$a501280a@phx.gbl...
Bonjour
merci pour ta reponse
j'ai essayé le code suivant mais cela beug dans le select,
il ne reconnait pas LgMot, peut etre ma requete est mal
ecrite ? qu'en penses-tu ?
Private Sub TxtRecherche_Click()
FrmRecherche.Caption = "Recherche d'un client"
'Affichage des enregistrements pour le client sélectionné
Dim LgMot As Integer
LgMot = LTrim(Len(TxtRecherche.Text))
Set ADOaf = New ADODB.Recordset
With ADOaf
.ActiveConnection = ADOcn
.CursorType = adOpenDynamic
.Open "Select client from affaire where left(client,
LgMot)='" & TxtRecherche.Text + "'"
End With
'remplissage de MSRecherche
LaLigne% = 0
Do Until ADOaf.EOF
LaLigne% = LaLigne% + 1
MSRecherche.FixedAlignment(0) = 4
MSRecherche.Rows = LaLigne% + 1
MSRecherche.Row = LaLigne%
MSRecherche.Col = 0
MSRecherche.Text = ADOaf("client")
ADOaf.MoveNext
Loop
End Sub
Merci de ta réponse
Cordialement
JCM
-----Message d'origine-----
j'ai fait u ntruc dans le genre
moi c'etait un combobox qui se remplis tout seul selon ce
Tu devrais plutôt coder tout cela dans l'évènement Change de ta zone de texte plutôt que dans l'évènement Click, de cette façon chaque fois que tu entreras un caractère dans ta zone la recherche s'effectuera.
Ensuite, tu devrais changer cette ligne
LgMot = LTrim(Len(TxtRecherche.Text))
par celle-ci
LgMot = Len(Trim(TxtRecherche.Text))
simplement inverser ton Trim avec ton Len, parce que tu allais d'abord chercher la longueur de ta chaîne et ensuite tu effectuais ton Trim, alors que tu dois faire l'inverse.
Ensuite l'erreur dans ta requête.
.Open "SELECT client FROM affaire WHERE LEFT(client, " & LgMot & ") LIKE '" & Trim(TxtRechereche.Text) & "'"
Maintenant ça devrait fonctionner.
Denis P
"JCM" a écrit dans le message de news:0a0f01c3d46b$fbccad70$ Bonjour
merci pour ta reponse j'ai essayé le code suivant mais cela beug dans le select, il ne reconnait pas LgMot, peut etre ma requete est mal ecrite ? qu'en penses-tu ?
Private Sub TxtRecherche_Click() FrmRecherche.Caption = "Recherche d'un client" 'Affichage des enregistrements pour le client sélectionné Dim LgMot As Integer LgMot = LTrim(Len(TxtRecherche.Text))
Set ADOaf = New ADODB.Recordset With ADOaf .ActiveConnection = ADOcn .CursorType = adOpenDynamic .Open "Select client from affaire where left(client, LgMot)='" & TxtRecherche.Text + "'" End With 'remplissage de MSRecherche LaLigne% = 0 Do Until ADOaf.EOF LaLigne% = LaLigne% + 1 MSRecherche.FixedAlignment(0) = 4 MSRecherche.Rows = LaLigne% + 1 MSRecherche.Row = LaLigne% MSRecherche.Col = 0 MSRecherche.Text = ADOaf("client") ADOaf.MoveNext Loop End Sub
Merci de ta réponse Cordialement JCM
-----Message d'origine----- j'ai fait u ntruc dans le genre moi c'etait un combobox qui se remplis tout seul selon ce
qu'y a dedans
Zoury
> LgMot = Len(Trim(TxtRecherche.Text))
ou encore mieux... par : '*** LgMot = Len(Trim$(TxtRecherche.Text)) '***
Merci de poster les réponses au groupe afin d'en faire profiter à tous
François Picalausa
Bonjour/soir,
Le $ évite de passer par un variant de sous type string (remplacer variant par lent, ça revient au même.. sauf pour VB qui cvonnait pas le type lent :-P ) et permet d'avoir directement un retour de type string (plus rapide).
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: > > LgMot = Len(Trim(TxtRecherche.Text)) > > ou encore mieux... par : > '*** > LgMot = Len(Trim$(TxtRecherche.Text)) > '***
Bonjour/soir,
Le $ évite de passer par un variant de sous type string (remplacer variant
par lent, ça revient au même.. sauf pour VB qui cvonnait pas le type lent
:-P ) et permet d'avoir directement un retour de type string (plus rapide).
"seb-seb" <sperot51@msn.com> a écrit dans le message de
news:uVnRBaJ1DHA.4064@tk2msftngp13.phx.gbl...
le $ est vraiment utile ?
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:exsGPyH1DHA.3416@tk2msftngp13.phx.gbl...
> > LgMot = Len(Trim(TxtRecherche.Text))
>
> ou encore mieux... par :
> '***
> LgMot = Len(Trim$(TxtRecherche.Text))
> '***
Le $ évite de passer par un variant de sous type string (remplacer variant par lent, ça revient au même.. sauf pour VB qui cvonnait pas le type lent :-P ) et permet d'avoir directement un retour de type string (plus rapide).
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news: > > LgMot = Len(Trim(TxtRecherche.Text)) > > ou encore mieux... par : > '*** > LgMot = Len(Trim$(TxtRecherche.Text)) > '***
Zoury
Salut Seb! :O)
le $ est vraiment utile ?
Trim() Reçoit et renvoit du Variant alors que Trim$() Reçoit et renvoit du String
Le type Variant étant très lent, cela rend la version Trim$() environ 15% à 20% plus rapide que son homophone en plus d'utiliser le bon type de données. C'est la même chose pour toutes les autres fonctions des chaines de caractères qui offrent les 2 versions (Left$(), Right$(), LCase$(), ...)
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut Seb! :O)
le $ est vraiment utile ?
Trim() Reçoit et renvoit du Variant alors que
Trim$() Reçoit et renvoit du String
Le type Variant étant très lent, cela rend la version Trim$() environ 15% à
20% plus rapide que son homophone en plus d'utiliser le bon type de données.
C'est la même chose pour toutes les autres fonctions des chaines de
caractères qui offrent les 2 versions (Left$(), Right$(), LCase$(), ...)
Trim() Reçoit et renvoit du Variant alors que Trim$() Reçoit et renvoit du String
Le type Variant étant très lent, cela rend la version Trim$() environ 15% à 20% plus rapide que son homophone en plus d'utiliser le bon type de données. C'est la même chose pour toutes les autres fonctions des chaines de caractères qui offrent les 2 versions (Left$(), Right$(), LCase$(), ...)
Merci de poster les réponses au groupe afin d'en faire profiter à tous
seb-seb
je veux bien croire mais quand on defini ses variables et qu'on definie un string y doit bien voir que ca sert a rien de passer par un variant
"François Picalausa" a écrit dans le message de news:OA$
Bonjour/soir,
Le $ évite de passer par un variant de sous type string (remplacer variant par lent, ça revient au même.. sauf pour VB qui cvonnait pas le type lent :-P ) et permet d'avoir directement un retour de type string (plus
"seb-seb" a écrit dans le message de news: > le $ est vraiment utile ? > > "Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de > news: > > > LgMot = Len(Trim(TxtRecherche.Text)) > > > > ou encore mieux... par : > > '*** > > LgMot = Len(Trim$(TxtRecherche.Text)) > > '***
je veux bien croire mais quand on defini ses variables et qu'on definie un
string y doit bien voir que ca sert a rien de passer par un variant
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:OA$afeJ1DHA.4008@tk2msftngp13.phx.gbl...
Bonjour/soir,
Le $ évite de passer par un variant de sous type string (remplacer variant
par lent, ça revient au même.. sauf pour VB qui cvonnait pas le type lent
:-P ) et permet d'avoir directement un retour de type string (plus
"seb-seb" <sperot51@msn.com> a écrit dans le message de
news:uVnRBaJ1DHA.4064@tk2msftngp13.phx.gbl...
> le $ est vraiment utile ?
>
> "Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
> news:exsGPyH1DHA.3416@tk2msftngp13.phx.gbl...
> > > LgMot = Len(Trim(TxtRecherche.Text))
> >
> > ou encore mieux... par :
> > '***
> > LgMot = Len(Trim$(TxtRecherche.Text))
> > '***
je veux bien croire mais quand on defini ses variables et qu'on definie un string y doit bien voir que ca sert a rien de passer par un variant
"François Picalausa" a écrit dans le message de news:OA$
Bonjour/soir,
Le $ évite de passer par un variant de sous type string (remplacer variant par lent, ça revient au même.. sauf pour VB qui cvonnait pas le type lent :-P ) et permet d'avoir directement un retour de type string (plus
"seb-seb" a écrit dans le message de news: > le $ est vraiment utile ? > > "Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de > news: > > > LgMot = Len(Trim(TxtRecherche.Text)) > > > > ou encore mieux... par : > > '*** > > LgMot = Len(Trim$(TxtRecherche.Text)) > > '***
seb-seb
et sur un 2600+ dans une appli pas trop grosse ca se voit pas forcement
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news:
Salut Seb! :O)
> le $ est vraiment utile ?
Trim() Reçoit et renvoit du Variant alors que Trim$() Reçoit et renvoit du String
Le type Variant étant très lent, cela rend la version Trim$() environ 15%
à
20% plus rapide que son homophone en plus d'utiliser le bon type de
données.
C'est la même chose pour toutes les autres fonctions des chaines de caractères qui offrent les 2 versions (Left$(), Right$(), LCase$(), ...)