Compter le nombre de chiffres et de lettres

Résolu/Fermé
Coper - 27 janv. 2017 à 14:54
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 30 janv. 2017 à 12:31
Bonjour,

Existe t'il une fonction qui permet de compter le nombre de chiffres et une autre qui permet de compter le nombre de lettres d'une donnée sous Access ?

Bonne journée


A voir également:

4 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
27 janv. 2017 à 16:50
bonjour, probablement pas.
c'est cependant très simple à réaliser, et il est possible d'utiliser des fonctions dans les requêtes.
0
Utilisateur anonyme
27 janv. 2017 à 20:40
Bonjour,

avec la fonction IsNumeric() tu vas pouvoir compter le nombre de chiffres. Si ta donnée ne comporte que des chiffres et des lettres, tu auras facilement le nombre de lettres.

A ta dispo si tu as un souci avec cette fonction ou sa mise en place.

A+
0
Bonjour,

Je vous remercie pour votre réponse.
Je suis complètement novice en VBA ou SQL, et je n'arrive à mettre en place la fonction IsNumeric() et à compter le nombre de lettres.

Pour décrire rapidement mon problème, j'ai une base access sur laquelle j'ai besoin de compter pour chaque cellule le nombre de lettres, de chiffres et de caractères autres (type /, -...).
Même si j'arrive à déduire le nombre de chiffres avec IsNumeric(), il me faudra encore réussir à déduire le nombre de lettres ou de caractères autres.

Voici un exemple de base access sur laquelle il y a facilement possibilité de compter le nombre total de caractères avec nbcar, mais après je coince...

Pourriez-vous m'aider ?

https://www.catupload.com/download/077263ded19fffd5335bf6cb24b7348e.html

Bonne journée
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
28 janv. 2017 à 11:40
bonjour, je propose ceci:
pour ta requete:
SELECT Table1.Champ1, Len([Champ1]) AS nbcar, nbchif(champ1) as nbchiffre ,nblettre(champ1) as nblettre, nbautre(champ1) as nbautre
FROM Table1;

à mettre dans un module (à créer):
Option Compare Database
Option Explicit

Function nbchif(chaine As String) As Integer
Dim i As Integer
nbchif = 0
For i = 1 To Len(chaine)
    If IsNumeric(Mid(chaine, i, 1)) Then
        nbchif = nbchif + 1
    End If
Next i
End Function
Function nblettre(chaine As String) As Integer
Dim i As Integer
nblettre = 0
For i = 1 To Len(chaine)
    Select Case Asc(Mid(chaine, i, 1))
        Case 65 To 90, 97 To 122
            nblettre = nblettre + 1
    End Select
Next i
End Function
Function nbautre(chaine As String) As Integer
Dim i As Integer
Dim c As String
nbautre = 0
For i = 1 To Len(chaine)
    c = Mid(chaine, i, 1)
    Select Case Asc(c)
        Case 65 To 90, 97 To 122
        Case Else
            If Not IsNumeric(c) Then
                nbautre = nbautre + 1
            End If
    End Select
Next i
End Function
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
28 janv. 2017 à 11:41
Fichier adapté:
http://www.cjoint.com/c/GACkPgX8U41
0
Bonjour,

Merci beaucoup pour votre aide ! C'est parfait !

J'ai juste une dernière question, quels sont les caractères pris en compte pour la fonction nbautre ?

Bonne journée,
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
30 janv. 2017 à 12:31
bonjour, nbautre compte tous ceux qui ne sont ni des chiffres, ni des lettres (52 lettres, a à z, majuscules et minuscules).
0