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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
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" a écrit dans le message de news:
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
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" <aCodial@tiscali.fr> a écrit dans le message de news:
eVLW6nCDFHA.2620@tk2msftngp13.phx.gbl...
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
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" a écrit dans le message de news:
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
Bonjour Raymond,
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !
Codial
"Raymond [mvp]" a écrit dans le message de 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" a écrit dans le message de news:
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
Bonjour Raymond,
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !
Codial
"Raymond [mvp]" <XYZ.officesystem.access@free.fr> a écrit dans le message de
news: eBNLrmDDFHA.2156@TK2MSFTNGP10.phx.gbl...
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" <aCodial@tiscali.fr> a écrit dans le message de news:
eVLW6nCDFHA.2620@tk2msftngp13.phx.gbl...
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
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !
Codial
"Raymond [mvp]" a écrit dans le message de 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" a écrit dans le message de news:
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]
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" a écrit dans le message de news: OF$bf%
Bonjour Raymond,
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !
Codial
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" <aCodial@tiscali.fr> a écrit dans le message de news:
OF$bf%23FDFHA.2156@TK2MSFTNGP10.phx.gbl...
Bonjour Raymond,
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !
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" a écrit dans le message de news: OF$bf%
Bonjour Raymond,
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !
Codial
Codial
Ok, je vais tester, encore merci
Codial
"Raymond [mvp]" a écrit dans le message de 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" a écrit dans le message de news: OF$bf%
Bonjour Raymond,
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !
Codial
Ok, je vais tester, encore merci
Codial
"Raymond [mvp]" <XYZ.officesystem.access@free.fr> a écrit dans le message de
news: egHO$GGDFHA.628@TK2MSFTNGP15.phx.gbl...
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" <aCodial@tiscali.fr> a écrit dans le message de news:
OF$bf%23FDFHA.2156@TK2MSFTNGP10.phx.gbl...
Bonjour Raymond,
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !
"Raymond [mvp]" a écrit dans le message de 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" a écrit dans le message de news: OF$bf%
Bonjour Raymond,
j'ai essayé vbKeyDelete mais ça marche pas! il n'y a pas de réaction !