Fonctionnalité de correspondance à un textbox

cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010 - 3 août 2010 à 09:55
cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010 - 6 août 2010 à 18:29
Bonjour à tous,
Dans cmd_recherche, j'aimerais bien savoir le code qui permet à ajouter la fonctionnalité de correspondance à un textbox lié à une base de donnée access.
c-à-d, si je chercher un nom, je veux quand je commence à saisir les premiers caractères , on me propose les noms qui commencent par ces caractères . (c'est la propriété qu'on trouve dans excel)
Voici le code dont je me sert dans cmd_recherche

On Error Resume Next
     If Text1.Text = "" Then
       MsgBox "Veuiller saisir un nom à rechercher", vbInformation + _
                     vbMsgBoxRtlReading + vbOKOnly, "Attention"
End If
 
If Text1.Text <> "" Then
If IsNumeric(Text1) = False Then
    Set RS = New ADODB.Recordset
RS.Open "select * from patient where nom like '%" & Text1.Text & "%' And prenom like '%" & Text2.Text & "%'", DB, adOpenStatic, adLockOptimistic
       If RS.RecordCount > 0 Then
    
 Text1.Text = RS!Nom
 Text2.Text = RS!Prenom
 Text3.Text = RS!age
 Text4.Text = RS!date
 Text5.Text = RS!diagnostic
 Text6.Text = RS!plan
 Text7.Text = RS!obs
 Else
   MsgBox "Aucun patient avec ce nom", vbInformation + _
                     vbMsgBoxRtlReading + vbOKOnly, "Attention"
    End If
    Text1.SetFocus
End If
End If

merci à tous

11 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
3 août 2010 à 13:50
Salut
Pourquoi ne pas tout mettre c.a.d la liste des patients dans un combobox ?
0
cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010
3 août 2010 à 16:03
Pourquoi ne pas tout mettre c.a.d la liste des patients dans un combobox ?

Merci pour la réponse, mais je crois que c'est pas fesable de mettre une liste qui peut contenir des centaines de noms dans une combobox.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
3 août 2010 à 16:47
Salut
Si c'est faisable
ta query
RS.Open "select * from patient ", DB, adOpenStatic, adLockOptimistic
If RS.RecordCount > 0 Then
'comboname est un combobox
'vider le combobox sinon chaque fois les items vont s'accumuler
Comboname.Items.Clear()
RS.movefirst
do while not RS.EOF
comboname.Items.Add(RS.field(0) & rs.field(1))
'je suppose que field(0) et field(1) sont
le nom et le prénom
RS.movenext
loop
comboname.sorted
0
cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010
4 août 2010 à 00:25
Merci ShayW
Mais étes vous certain que ce que me proposer est de vb6?
Je dis ça parceque j'ai reçu plein de messages d'erreur lors de l'éxécution du code!
merci en tous les cas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
4 août 2010 à 02:16
c'est du vb.net je me suis trompé

RS.Open "select * from patient ORDER BY Nom,Prenom ", DB, adOpenStatic, adLockOptimistic

If RS.RecordCount > 0 Then
'comboname est un combobox
'vider le combobox sinon chaque fois les items vont s'accumuler
ComboName.clear
RS.movefirst
do while not RS.EOF
comboname.AddItem(RS.field(0) & rs.field(1))
'je suppose que field(0) et field(1) sont
le nom et le prénom
RS.movenext
loop
0
cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010
5 août 2010 à 20:24
Merci beaucoup ShayW pour votre aide, mais malheureusement j'ai pas reussi à manipuler ce code.
Je sais que c'est de ma faute. Je crois que je dois pas etre tres ambitieux!
Et merci encore mile fois.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
5 août 2010 à 22:43
Bonsoir

Je sais que c'est de ma faute. Je crois que je dois pas etre tres ambitieux!
Il le faut
Essayes encore et regardes qu'est ce qui ne marche pas
0
cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010
5 août 2010 à 23:58
Merci de votre encouragement

En fait, j'ai éssayé pas mal de fois mais en vain.
J'ai pu charger tous les nom dans le combobox par moyen de ce code en form load:
Cobo1.AddItem RS!Nom

Mais je savais pas ou je dois mettre le code que vous m'avez proposé.
Dois-je le placer dans l'évenement combo1_click ou bien cmd_recherche ou bien text1_Change...?
J'ai éssayer avec tous ces evenement mais sans résultats.
Désolé de mon dérangement
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
6 août 2010 à 17:02
Salut
Je n'ai pas bien expliqué
le resultat de ta requete en dans RS qui est un recordset
Maintenant il faut transferer son contenu dans
un combobox
pour cela j'ajoute une sub (j'ai oublié de te le dire)
 Private Sub InsertComboName()
   If RS.RecordCount > 0 Then 
'comboname est un combobox 
'vider le combobox sinon chaque fois les items vont s'accumuler 
ComboName.clear 
RS.movefirst 
do while not RS.EOF 
comboname.AddItem(RS.field(0) & rs.field(1)) 
'je suppose que field(0) et field(1) sont 
le nom et le prénom 
RS.movenext 
loop   
end sub 


Maintenant ou vas tu appeler la sub ?
Après la requete pas dans un evenement du combobox
exemple
RS.Open "select * from patient ORDER BY Nom,Prenom ", DB, adOpenStatic, adLockOptimistic

InsertComboName

pourquoi adOpenStatic et non adOpenDynamic
Essayes avec le debugger
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
6 août 2010 à 17:06
Je corrige
au lieu de comboname.AddItem(RS.field(0) & rs.field(1))
'ajouter un espace entre le nom et prenom
comboname.AddItem(RS.field(0) &" "& rs.field(1))
0
cs_zidane22 Messages postés 67 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 13 octobre 2010
6 août 2010 à 18:29
Merci ShayW
Je reçois encore des messages d'erreurs liés a RS.field(0)et rs.field(1)).je crois que je dois céder ici parce que c'est pas quelque chose de grande importance pour mon application..
merci beaucoup
0
Rejoignez-nous