OVH Cloud OVH Cloud

a Damien M et 3stone

4 réponses
Avatar
Sergio
ça y est ça marche !!!!!!

Bonjour et merci à tous
Je ne sais pas exactement ce que j'ai bidouillé
mais voici ce qui marche :

Public Sub Cpt_stats()

Static vary(5 To 56, -1 To 10), enreg, colchp As Long
Dim DB As DAO.Database
Dim qd As DAO.QueryDef
Dim rqt, rq, chp As String

' Selectionner la Requete
Set DB = Application.CurrentDb
rqt = "Suivi_R"
rq = "SuiviStatsEntr_R"
Set qd = DB.QueryDefs(rqt)

' Selectionner le Champs PAR N°
For colchp = 5 To 55
chp = "[" & qd.Fields(colchp).Name & "]"
' Comptage
For enreg = -1 To 10
'XXXXXXXXXXXXXXXXXXXXXXXXXXX
NB = DCount(chp, rqt, chp & "= " & enreg)
vary(colchp, enreg) = NB
'XXXXXXXXXXXXXXXXXXXXXXXXXXX

MsgBox ("Nom du champ : " & chp) & Chr(10) & "NB = " & NB & Chr(10) &
"colchp et enreg = " & colchp & ", " & enreg & Chr(10) & "vary " & colchp &
"," & enreg & "= " & vary(colchp, enreg)
Next enreg
Next colchp
End Sub

A + merci encore
Sergio

4 réponses

Avatar
Xavier HUE
Bonjour Sergio,

Je prends le fil au vol ;-)

2 remarques purement technique, mais qui peuvent provoquer
des bugs difficiles à pister

Static vary(5 To 56, -1 To 10), enreg, colchp As Long
Ce type de déclaration définit vary, enreg et colchp en

type Variant et seulement colchp en Long

Dim rqt, rq, chp As String
De même, rqt et rq sont déclarés Variant et non String


rq = "SuiviStatsEntr_R"
Me laisse penser tu voulais déclarer rq en string


En résumé toute variable déclarée par une des instructions
de déclaration et qui n'est pas explicitement typée, prend
le type Variant.

Il faudrait plutôt écrire:

Static vary(5 To 56, -1 To 10) As Long, enreg As Long,
colchp As Long

Deuxième remarque, tu utilises la variable NB, non
déclarée dans ta procédure. Le fait de ne pas déclarer les
variables provoque une erreur d'exécution/compilation si
l'instruction "Option Explicit" existe.
Si dans ton cas, tu n'as pas d'erreur d'exécution, c'est
que tu n'as pas "Option Explicit" et donc, pour finir, si
dans ton code tu tapes BN au lien de NB, ton code ne
fonctionnera pas comme prévu, et Access ne signalera pas
d'erreur.

En résumé,
- Option Explicit
- Dim MaVar As Type

Elimine pas mal d'erreur de coding.

Cordialement.

Avatar
3stone
Salut,

"Sergio"
Je ne sais pas exactement ce que j'ai bidouillé
mais voici ce qui marche :

chp = "[" & qd.Fields(colchp).Name & "]"


c'est le fait d'ajouter des crochets qui l'a fait "marcher" ;-)
Je t'avais bien demandé si les noms de champs contenait des espaces...


Dim rqt, rq, chp As String


Corrige encore ceci ! Car ici rqt et rq sont déclaré Variant

Dim rqt As String, rq As String, chp As String



PS: Il ne faut pas "adresser" un message...
Pour continuer une conversation, retourne dans le fil d'origine.

Mais, venir dire que cela fonctionne, c'est très bien :-))


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
Sergio
Merci pour les infos
je mets ça en pratique de suite

A+ Sergio

"Xavier HUE" a écrit dans le message de news:
05e801c3c55a$c0f1b3a0$
Bonjour Sergio,

Je prends le fil au vol ;-)

2 remarques purement technique, mais qui peuvent provoquer
des bugs difficiles à pister

Static vary(5 To 56, -1 To 10), enreg, colchp As Long
Ce type de déclaration définit vary, enreg et colchp en

type Variant et seulement colchp en Long

Dim rqt, rq, chp As String
De même, rqt et rq sont déclarés Variant et non String


rq = "SuiviStatsEntr_R"
Me laisse penser tu voulais déclarer rq en string


En résumé toute variable déclarée par une des instructions
de déclaration et qui n'est pas explicitement typée, prend
le type Variant.

Il faudrait plutôt écrire:

Static vary(5 To 56, -1 To 10) As Long, enreg As Long,
colchp As Long

Deuxième remarque, tu utilises la variable NB, non
déclarée dans ta procédure. Le fait de ne pas déclarer les
variables provoque une erreur d'exécution/compilation si
l'instruction "Option Explicit" existe.
Si dans ton cas, tu n'as pas d'erreur d'exécution, c'est
que tu n'as pas "Option Explicit" et donc, pour finir, si
dans ton code tu tapes BN au lien de NB, ton code ne
fonctionnera pas comme prévu, et Access ne signalera pas
d'erreur.

En résumé,
- Option Explicit
- Dim MaVar As Type

Elimine pas mal d'erreur de coding.

Cordialement.

Avatar
Sergio
Merci pour les infos
et à bientot

Sergio

"3stone" a écrit dans le message de news:

Salut,

"Sergio"
Je ne sais pas exactement ce que j'ai bidouillé
mais voici ce qui marche :

chp = "[" & qd.Fields(colchp).Name & "]"


c'est le fait d'ajouter des crochets qui l'a fait "marcher" ;-)
Je t'avais bien demandé si les noms de champs contenait des espaces...


Dim rqt, rq, chp As String


Corrige encore ceci ! Car ici rqt et rq sont déclaré Variant

Dim rqt As String, rq As String, chp As String



PS: Il ne faut pas "adresser" un message...
Pour continuer une conversation, retourne dans le fil d'origine.

Mais, venir dire que cela fonctionne, c'est très bien :-))


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------