Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2007, 16h03   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 9
Points : 3
Points : 3
Par défaut se positionner dans une liste suivant saisie

[FORMULAIRE] Le but est de se positionner dans une liste au fur et à mesure de la saisie dans une zone de texte. Exemple je tape A la liste trie tous les noms qui commencent par A, je tape ensuite R, elle trie tous les noms commençant par AR etc..
Sur un formulaire on place une zone de texte (texte0 ici) et une zone de liste (ChoixUsager) bêtement renseigné avec l'assistant (quelle table ou requete, quels champs...)
Le code est à placer sur l'événement sur changement de la zone texte0. Il permet de reconstruire après chaque entrée le SQL pour la zone de liste et positionne le curseur à la fin dans texte0.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Texte0_Change() 'a positionner donc sur l'événement "sur changement" de la zone de texte
Dim SQl As String
 
    Me.Requery
    Me.ChoixUsager.RowSource = SQl
 
    If IsNull(Len(Texte0)) Then 'Contruction du SQL pour la liste
        SQl = "select TblPassants.NumUsager, TblPassants.NomUsager, TblPassants.PrenomUsager, TblPassants.CodeRegime, TblPassants.Classe FROM TblPassants ORDER BY TblPassants.NomUsager"
    Else
        Me.Requery
        'Le sql construit par les lettre entrées
        SQl = "select TblPassants.NumUsager, TblPassants.NomUsager, TblPassants.PrenomUsager, TblPassants.CodeRegime, TblPassants.Classe FROM TblPassants"
        SQl = SQl & " where tblpassants.NomUsager Like '" & Me.Texte0 & "*' "
        SQL= SQl & "ORDER BY TblPassants.NomUsager ;"
        Me.ChoixUsager.RowSource = SQl
        Me.ChoixUsager.Requery
        Texte0.SelStart = Len(Texte0) 'positionne le curseur à la suite de la dernière lettre entrée. La fonction Len renvoie le nb de caractère
    End If
 
End Sub
Il y manque une petite gestion d'erreur, mais (c'est pas bien je sais) j'en fait rarement.
Voilà, si ça peut servir.
jiala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 17h06   #2
Expert Confirmé Sénior

 
Avatar de cafeine
 
Inscription : juin 2002
Messages : 3 882
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 3 882
Points : 4 500
Points : 4 500
Hello,

bon code merci : )

Mais sinon pourquoi tu mets 2 fois Me.Requery et cette ligne et début de procédure ?
Code :
Me.ChoixUsager.RowSource = SQl
?
__________________
Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème

Développez une application de gestion des comptes bancaires dans Access de A à Z
Déjà 12 tutoriels, le dernier en date : Comment faire un TextBox auto-extensible dans un formulaire ?


cafeine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 20h41   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 9
Points : 3
Points : 3
Le premier Me.requery, sans ça ne marche pas (réponse on ne peut plus explicite). La deuxième ligne, effectivement ne sert à rien.
Par contre petit soucis, sur les mots avec un espace, il est supprimé dès qu'on actualise.
Je cherche...
jiala est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h21.


 
 
 
 
Partenaires

Hébergement Web