bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param étatflag est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"leoxnet" a écrit dans le message de news:
Bonjour,
Je cherche à réinitialiser une variable static dans une procédure XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumulée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la fonction
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .
bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param étatflag est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"leoxnet" <leoxnetnews@free.fr> a écrit dans le message de news:
1187337574.308747.192830@19g2000hsx.googlegroups.com...
Bonjour,
Je cherche à réinitialiser une variable static dans une procédure XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumulée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la fonction
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .
bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param étatflag est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"leoxnet" a écrit dans le message de news:
Bonjour,
Je cherche à réinitialiser une variable static dans une procédure XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumulée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la fonction
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .
J'aime beaucoup le "boleen", biensûr on a tous noté que c'était : Boolean
;-))
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param étatflag
est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"leoxnet" a écrit dans le message de news:
Bonjour,
Je cherche à réinitialiser une variable static dans une procédure XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumulée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la fonction
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .
J'aime beaucoup le "boleen", biensûr on a tous noté que c'était : Boolean
;-))
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------
bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param étatflag
est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"leoxnet" <leoxnetnews@free.fr> a écrit dans le message de news:
1187337574.308747.192830@19g2000hsx.googlegroups.com...
Bonjour,
Je cherche à réinitialiser une variable static dans une procédure XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumulée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la fonction
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .
J'aime beaucoup le "boleen", biensûr on a tous noté que c'était : Boolean
;-))
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param étatflag
est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"leoxnet" a écrit dans le message de news:
Bonjour,
Je cherche à réinitialiser une variable static dans une procédure XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumulée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la fonction
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .
au moins 1 qui suit :o)) par contre la puissance du raisonnemnt t'as
complétement echappé
--
Pierre
MVP Access
***************************************
Conseils MPFA:http://www.mpfa.info/
*********************************************************
"Jessy Sempere" a écrit dans le message de news:J'aime beaucoup le "boleen", biensûr on a tous noté que c'était : Boolean
;-))
@+
Jessy Sempere
------------------------------------
Site @ccess :http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param état flag
est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA:http://www.mpfa.info/
*********************************************************
"leoxnet" a écrit dans le message de news:
Bonjour,
Je cherche à réinitialiser une variable static dans une procédur e XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumul ée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la foncti on
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .- Masquer le texte des messages précéden ts -
- Afficher le texte des messages précédents -
au moins 1 qui suit :o)) par contre la puissance du raisonnemnt t'as
complétement echappé
--
Pierre
MVP Access
***************************************
Conseils MPFA:http://www.mpfa.info/
*********************************************************
"Jessy Sempere" <jessy.semp...@prg.sncf.fr> a écrit dans le message de news:
0AAE0B46-488B-4AE1-A2C0-3894EBE7B...@microsoft.com...
J'aime beaucoup le "boleen", biensûr on a tous noté que c'était : Boolean
;-))
@+
Jessy Sempere
------------------------------------
Site @ccess :http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------
bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param état flag
est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA:http://www.mpfa.info/
*********************************************************
"leoxnet" <leoxnetn...@free.fr> a écrit dans le message de news:
1187337574.308747.192...@19g2000hsx.googlegroups.com...
Bonjour,
Je cherche à réinitialiser une variable static dans une procédur e XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumul ée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la foncti on
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .- Masquer le texte des messages précéden ts -
- Afficher le texte des messages précédents -
au moins 1 qui suit :o)) par contre la puissance du raisonnemnt t'as
complétement echappé
--
Pierre
MVP Access
***************************************
Conseils MPFA:http://www.mpfa.info/
*********************************************************
"Jessy Sempere" a écrit dans le message de news:J'aime beaucoup le "boleen", biensûr on a tous noté que c'était : Boolean
;-))
@+
Jessy Sempere
------------------------------------
Site @ccess :http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------bonjour
si tu déclares un flag boleen en public
dans un sub d'initialisation tu passes ce flag à True et tu appelle ta
fonction
public flag as boleen
sub init
dim x as long
flag = true
x=cumul_ventes(ventes,flag)
end sub
Public Function cumul_ventes(ventes,EtatFlag) As Long
if Etatflag then
'initialise ta var static
evidement quand tu appelles cette function d'ailleurs, le param état flag
est
false
--
Pierre
MVP Access
***************************************
Conseils MPFA:http://www.mpfa.info/
*********************************************************
"leoxnet" a écrit dans le message de news:
Bonjour,
Je cherche à réinitialiser une variable static dans une procédur e XX,
en sachant que cette variable n'est pas utilisée dans la procédure xx,
mais dans une autre fonction inconnue de XX).
Ci-joint mon problème
Afin de faire une analyse abc (pareto), je dois calculer la valeur
cumulée d'un champ ( valeur cumulée n = valeur n + valeur cumul ée
n-1).
J'ai donc écrit une petite fonction vba en utilisant une variable
static
Public Function cumul_ventes(ventes) As Long
Static cum_ventes
'cum_ventes : valeur cumulée
' ventes : valeur que je vais additionner à cum_ventes pour calculer
ma nouvelle valeur cumulée
If IsNull(cum_ventes) Then
cum_ventes = ventes
Else
'gestion des ventes qui ne sont pas renseignées'
If ventes <> "" Then
cum_ventes = cum_ventes + ventes
Else: cum_ventes = cum_ventes + 0
End If
End If
cumul_ventes = cum_ventes
End Function
J'appelle cette fonction dans une requête mise à jour et en avant le
calcul pour le pareto. L'opération fonctionne très bien (la foncti on
s'exécute donc autant de fois qu'il y'a d'enregistrement à mettre à
jour). Sauf que la variable static qui me permet de mémoriser la
valeur cumulée entre 2 appels de fonctions m'empêche de calculer 2
Pareto de manière consécutive sans redémarrer Access.
Or j'ai besoin de calculer mon pareto une cinquantaine de fois avec
des paramètres différents. J'avais prévu d'automatiser tout ça en vba,
mais je bloque sur la variable static car je n'arrive pas à la
réinitialiser dans une autre procédure (je pense que j'ai un «
problème de portée » ? ma variable static n'est connu que de ma
fonction, quand j'interroge sa valeur dans une autre procédure j'ai
une valeur nulle). J'ai un peu tout essayé mais pas moyen, sauf
redémarrer access à chaque coup.
Pour être plus clair, ma procédure finale (pour automatiser les 50
calculs de ma classe ABC) devait ressembler à ça
Sub automatisation()
'1) création d'un recordet à partir d'une table paramètre, me
permettant de récupérer mes paramètres pour le calcul des ventes
... /.
'2. je calcul mon fichier ventes en tenant compte des paramètres de
l'étape 1. Ceci se fait à travers plusieurs requêtes (extraction d'une
base centrale, création d'une table sur laquelle j'effectuerais mon
calcul de cumul)
3. Calcul de ma classe abc via la fonction cumul ventes (la fonction
cumul_ventes est appelée par la requête mise à jour, pas par le module
automatisation, donc pas de possibilité de transférer la valeur
cumulée).
Stockage du résultat agrégé dans une table résultat
Reinitialiser ma variable static
4. Redémarrer à l'étape 2 avec un autre paramètre
End sub()
Si vous avez des idées .- Masquer le texte des messages précéden ts -
- Afficher le texte des messages précédents -