Gestion des touches

Le
Codial
Bonjour,

j'ai un form avec une zône de liste. A l'usage il s'avère que la recherche
d'un document dans cette liste est trop longue.
Aussi j'ai rajouter une zône de texte avec une gestion des touches pour
filtrer cette zone de liste avec le code suivant.

Ce que je n'arrive pas à faire c'est à intercepter la touche "Suppr" dans le
cas ou l'utilisateur sélectionne toute la zône de texte.

Comment je peux faire?

Mon code:
Dans le général:

Dim chaine As String
Dim monSql As String

Ma Sub:

Private Sub Texte32_KeyPress(KeyAscii As Integer)
On Error Resume Next
Select Case KeyAscii
Case 97 To 122 'Lettres miniscules
chaine = chaine + Chr(KeyAscii)
Case 65 To 90
chaine = chaine + Chr(KeyAscii) 'Lettres majuscules
Case 48 To 57 'Clavier numérique
chaine = chaine + Chr(KeyAscii)
Case 47, 45, 32, 46, 176
'47 = /
'45 = -
'Space = 32
'Point = 46
'° = 176
chaine = chaine + Chr(KeyAscii)
Case 8 'Touche RET.ARR
chaine = left(chaine, Len(chaine) - 1)
If Len(chaine) = 0 Then
Me.listDoc = Null
chaine = Null
End If
Case 27 'Touche ÉCHAP
chaine = ""
Me.Texte32 = Null
Case Else
End Select
'
monSql = "SELECT CATALOGUE.REF_MAT, CATALOGUE.PARTIE, CATALOGUE.DATE_EM,
CATALOGUE.PRIX, CATALOGUE.CLAIR " & _
"FROM CATALOGUE WHERE (((CATALOGUE.REF_MAT) LIKE '" & UCase(chaine) & "*'))
ORDER BY CATALOGUE.REF_MAT; "
'
Me.listDoc.RowSource = monSql

End Sub

Ou bien existe t'il un autre moyen?

D'avance merci

Codial
Vos réponses
Trier par : date / pertinence
Raymond [mvp]
Le #5664361
RE.

en général quand une liste est trop longue, on crée une 2e liste imbriquée
( famille) pour diviser le nombre d'éléments de la liste initiale.
sinon la touche suppress est : vbKeyDelete
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Codial"
Bonjour,

j'ai un form avec une zône de liste. A l'usage il s'avère que la recherche
d'un document dans cette liste est trop longue.
Aussi j'ai rajouter une zône de texte avec une gestion des touches pour
filtrer cette zone de liste avec le code suivant.

Ce que je n'arrive pas à faire c'est à intercepter la touche "Suppr" dans
le cas ou l'utilisateur sélectionne toute la zône de texte.

Comment je peux faire?

Mon code:
Dans le général:

Dim chaine As String
Dim monSql As String

Ma Sub:

Private Sub Texte32_KeyPress(KeyAscii As Integer)
On Error Resume Next
Select Case KeyAscii
Case 97 To 122 'Lettres miniscules
chaine = chaine + Chr(KeyAscii)
Case 65 To 90
chaine = chaine + Chr(KeyAscii) 'Lettres majuscules
Case 48 To 57 'Clavier numérique
chaine = chaine + Chr(KeyAscii)
Case 47, 45, 32, 46, 176
'47 = /
'45 = -
'Space = 32
'Point = 46
'° = 176
chaine = chaine + Chr(KeyAscii)
Case 8 'Touche RET.ARR
chaine = left(chaine, Len(chaine) - 1)
If Len(chaine) = 0 Then
Me.listDoc = Null
chaine = Null
End If
Case 27 'Touche ÉCHAP
chaine = ""
Me.Texte32 = Null
Case Else
End Select
'
monSql = "SELECT CATALOGUE.REF_MAT, CATALOGUE.PARTIE,
CATALOGUE.DATE_EM, CATALOGUE.PRIX, CATALOGUE.CLAIR " & _
"FROM CATALOGUE WHERE (((CATALOGUE.REF_MAT) LIKE '" & UCase(chaine) &
"*')) ORDER BY CATALOGUE.REF_MAT; "
'
Me.listDoc.RowSource = monSql

End Sub

Ou bien existe t'il un autre moyen?

D'avance merci

Codial




Codial
Le #5664131
Bonjour Raymond,

j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !

Codial


"Raymond [mvp]" news:
RE.

en général quand une liste est trop longue, on crée une 2e liste imbriquée
( famille) pour diviser le nombre d'éléments de la liste initiale.
sinon la touche suppress est : vbKeyDelete
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Codial"
Bonjour,

j'ai un form avec une zône de liste. A l'usage il s'avère que la
recherche d'un document dans cette liste est trop longue.
Aussi j'ai rajouter une zône de texte avec une gestion des touches pour
filtrer cette zone de liste avec le code suivant.

Ce que je n'arrive pas à faire c'est à intercepter la touche "Suppr" dans
le cas ou l'utilisateur sélectionne toute la zône de texte.

Comment je peux faire?

Mon code:
Dans le général:

Dim chaine As String
Dim monSql As String

Ma Sub:

Private Sub Texte32_KeyPress(KeyAscii As Integer)
On Error Resume Next
Select Case KeyAscii
Case 97 To 122 'Lettres miniscules
chaine = chaine + Chr(KeyAscii)
Case 65 To 90
chaine = chaine + Chr(KeyAscii) 'Lettres majuscules
Case 48 To 57 'Clavier numérique
chaine = chaine + Chr(KeyAscii)
Case 47, 45, 32, 46, 176
'47 = /
'45 = -
'Space = 32
'Point = 46
'° = 176
chaine = chaine + Chr(KeyAscii)
Case 8 'Touche RET.ARR
chaine = left(chaine, Len(chaine) - 1)
If Len(chaine) = 0 Then
Me.listDoc = Null
chaine = Null
End If
Case 27 'Touche ÉCHAP
chaine = ""
Me.Texte32 = Null
Case Else
End Select
'
monSql = "SELECT CATALOGUE.REF_MAT, CATALOGUE.PARTIE,
CATALOGUE.DATE_EM, CATALOGUE.PRIX, CATALOGUE.CLAIR " & _
"FROM CATALOGUE WHERE (((CATALOGUE.REF_MAT) LIKE '" & UCase(chaine) &
"*')) ORDER BY CATALOGUE.REF_MAT; "
'
Me.listDoc.RowSource = monSql

End Sub

Ou bien existe t'il un autre moyen?

D'avance merci

Codial








Raymond [mvp]
Le #5664101
vbKeyDelete c'est 46 et faut la tester sur l'évènement KeyDown
Private Sub Téléphone_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
End Sub

bien mettre à oui l'aperçu des touches.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Codial" OF$bf%
Bonjour Raymond,

j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !

Codial



Codial
Le #5663901
Ok, je vais tester, encore merci

Codial

"Raymond [mvp]" news: egHO$
vbKeyDelete c'est 46 et faut la tester sur l'évènement KeyDown
Private Sub Téléphone_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
End Sub

bien mettre à oui l'aperçu des touches.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Codial" OF$bf%
Bonjour Raymond,

j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !

Codial







Publicité
Poster une réponse
Anonyme