OVH Cloud OVH Cloud

Equivalent NB.SI dans Access

2 réponses
Avatar
Michèle
Bonjour à tous,

Dans ma gestion de planning, j'ai 18 champs appelés jour1, jour2, jour3,
etc... contenant des codes comme PT,NT,NS,NT,PA, etc..

J'aurais souhaité, en passant par une requête (cad sans vba), pouvoir
compter le nombre de PT

Idée : créer un champ calculé et calculer le nombre d'occurence de PT dans
une chaîne
Ex: Cum:[jour1]&[jour2]&[jour3] donne PTNSPT
Quelle fonction peut répondre 2 ?

Sinon, j'exporte vers Excel ou je fait du vba.

Merci d'avance

2 réponses

Avatar
Eric
Bonjour Michèle,

Je ne crois pas qu'il y ait un équivalent sous Access de NB.SI. Mon idée
serait de créer une fonction en VBA et de l'appeler dans la requête.

Exemple de fonction (à copier dans un module global):

Function NbOccurences(UneChaine, CarSeek As String) As Integer
If IsNull(UneChaine) Then Exit Function
Dim cpt As Integer, Longueur As Integer, pos As Integer
pos = InStr(UneChaine, CarSeek)
If pos > 0 Then
Longueur = Len(CarSeek)
cpt = cpt + 1
UneChaine = Mid(UneChaine, pos + Longueur)
NbOccurences = cpt + NbOccurences(UneChaine, CarSeek)
End If
End Function

et dans la requête:
le champ Cum et un champ calcule:
Nb:NbOccurences([Cum];"PT")


Bonjour à tous,

Dans ma gestion de planning, j'ai 18 champs appelés jour1, jour2, jour3,
etc... contenant des codes comme PT,NT,NS,NT,PA, etc..

J'aurais souhaité, en passant par une requête (cad sans vba), pouvoir
compter le nombre de PT

Idée : créer un champ calculé et calculer le nombre d'occurence de PT dans
une chaîne
Ex: Cum:[jour1]&[jour2]&[jour3] donne PTNSPT
Quelle fonction peut répondre 2 ?

Sinon, j'exporte vers Excel ou je fait du vba.

Merci d'avance


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Marie
Bonjour,
Comme équivalent de nb.si je vois bien la fonction de domaine cptedom()
exemple : pour compter le nombre de commandes du client n° 1
=CpteDom("*";"[TableCommandes]";"[codeclient]=1")
1er argument : le champ que l'on veut compter : nom du champ ou * (tous les
enregistrements)
2ème argument : la table où se trouve ce champ
3ème argument : le critère
Tous ces arguments entre guillemets, (et si l'expression du critère
nécessite des guillemets les remplacer par apostrophes)
Bonne journée
Marie

"Michèle" a écrit dans le message de
news:
Bonjour à tous,

Dans ma gestion de planning, j'ai 18 champs appelés jour1, jour2, jour3,
etc... contenant des codes comme PT,NT,NS,NT,PA, etc..

J'aurais souhaité, en passant par une requête (cad sans vba), pouvoir
compter le nombre de PT

Idée : créer un champ calculé et calculer le nombre d'occurence de PT dans
une chaîne
Ex: Cum:[jour1]&[jour2]&[jour3] donne PTNSPT
Quelle fonction peut répondre 2 ?

Sinon, j'exporte vers Excel ou je fait du vba.

Merci d'avance