Voici mon probl=E8me. J'ai une application connect=E9e =E0 des=20
bases de donn=E9es (classique !). Jusqu'=E0 aujourd'hui,=20
l'utilisateur doit appuyer sur le menu "Actualiser" afin=20
de rafra=EEchir les donn=E9es de l'application.=20
Ceci fonctionne =E0 merveille... mais j'aimerais=20
moderniser cette application afin que les donn=E9es se=20
rafra=EEchissent d'elles-m=EAme =E0 toutes les minutes disons.=20
Or, j'ai pens=E9 utiliser un contr=F4le comme le "TIMER" afin=20
d'ex=E9cuter cette t=E2che.=20
L=E0 d=E9bute mon probl=E8me. J'ai une fonction qui sert =E0=20
rafra=EEchir toutes les donn=E9es (SetData) qui est appel=E9e=20
dans mes 2 proc=E9dures :
1) mnuAffichage_Actualiser_Click()
2) tmrActualiser_Timer()
=3D=3D> Mon application plante litt=E9ralement lorsque l'on=20
appuie sur le menu "Actualiser", alors que le timer =E9tait=20
d=E9j=E0 en train d'ex=E9cuter cette m=EAme fonction, les 2=20
essayant de modifier les m=EAmes recordsets...
Comment savoir si l'une ou l'autre des 2 proc=E9dures est=20
d=E9j=E0 en fonction ? J'ai essay=E9 d'utiliser une variable=20
globale (Dim blnActualisation As Boolean), puis de=20
modifier son =E9tat selon que l'application est en train de=20
modifier les recordsets ou non, mais cel=E0 ne semble pas=20
=EAtre suffisant !
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
Christian HUBERT-HUGOUD- Xtrem7
Contre-proposition qui fonctionne bien pour moi :
en début de ta proc d'actualisation :
Static Running&
if Running = true then exit sub Running = true
'on bosse un peu...
puis dans TOUTES les sorties de la proc : Running = false
Cela fonctionne très bien.
Christian
"Claude" a écrit dans le message de news:0b0201c46e86$067f8530$ Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des bases de données (classique !). Jusqu'à aujourd'hui, l'utilisateur doit appuyer sur le menu "Actualiser" afin de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais moderniser cette application afin que les données se rafraîchissent d'elles-même à toutes les minutes disons. Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à rafraîchir toutes les données (SetData) qui est appelée dans mes 2 procédures : 1) mnuAffichage_Actualiser_Click() 2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on appuie sur le menu "Actualiser", alors que le timer était déjà en train d'exécuter cette même fonction, les 2 essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est déjà en fonction ? J'ai essayé d'utiliser une variable globale (Dim blnActualisation As Boolean), puis de modifier son état selon que l'application est en train de modifier les recordsets ou non, mais celà ne semble pas être suffisant !
Merci d'avance, Claude
Contre-proposition qui fonctionne bien pour moi :
en début de ta proc d'actualisation :
Static Running&
if Running = true then exit sub
Running = true
'on bosse un peu...
puis dans TOUTES les sorties de la proc :
Running = false
Cela fonctionne très bien.
Christian
"Claude" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:0b0201c46e86$067f8530$a401280a@phx.gbl...
Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des
bases de données (classique !). Jusqu'à aujourd'hui,
l'utilisateur doit appuyer sur le menu "Actualiser" afin
de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais
moderniser cette application afin que les données se
rafraîchissent d'elles-même à toutes les minutes disons.
Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin
d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à
rafraîchir toutes les données (SetData) qui est appelée
dans mes 2 procédures :
1) mnuAffichage_Actualiser_Click()
2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on
appuie sur le menu "Actualiser", alors que le timer était
déjà en train d'exécuter cette même fonction, les 2
essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est
déjà en fonction ? J'ai essayé d'utiliser une variable
globale (Dim blnActualisation As Boolean), puis de
modifier son état selon que l'application est en train de
modifier les recordsets ou non, mais celà ne semble pas
être suffisant !
puis dans TOUTES les sorties de la proc : Running = false
Cela fonctionne très bien.
Christian
"Claude" a écrit dans le message de news:0b0201c46e86$067f8530$ Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des bases de données (classique !). Jusqu'à aujourd'hui, l'utilisateur doit appuyer sur le menu "Actualiser" afin de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais moderniser cette application afin que les données se rafraîchissent d'elles-même à toutes les minutes disons. Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à rafraîchir toutes les données (SetData) qui est appelée dans mes 2 procédures : 1) mnuAffichage_Actualiser_Click() 2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on appuie sur le menu "Actualiser", alors que le timer était déjà en train d'exécuter cette même fonction, les 2 essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est déjà en fonction ? J'ai essayé d'utiliser une variable globale (Dim blnActualisation As Boolean), puis de modifier son état selon que l'application est en train de modifier les recordsets ou non, mais celà ne semble pas être suffisant !
Merci d'avance, Claude
le_troll
Bonjour,
Si tu utilises le timer, tu n'as plus besoin de savoir où tu en es, puisqu'il fait sans cesse ce que tu lui demande, de tes 2 procédures, il conviendrait de faire un seul appel au timer dés le lancement, en mettant le rafraîchissement dedans par exemple, et... si ça cause un conflit d'écrire dans la bdd et de la rafraîchir, de suspendre le timer durant l'ordre d'écriture, puis de reprendre après, c'est un contexte multi-utilisateurs je présume...
-- Merci, @+, bye, Joe troll75 AROBASE iFrance POINT com ------------------------------------------ Ce message est plein de virus "certifiés" Le_Troll, éleveur de Trolls depuis César, qui disait: Avec une hache, celui qui tient le manche a toujours raison ! ------------------------------------------
"Claude" a écrit dans le message de news: 0b0201c46e86$067f8530$ Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des bases de données (classique !). Jusqu'à aujourd'hui, l'utilisateur doit appuyer sur le menu "Actualiser" afin de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais moderniser cette application afin que les données se rafraîchissent d'elles-même à toutes les minutes disons. Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à rafraîchir toutes les données (SetData) qui est appelée dans mes 2 procédures : 1) mnuAffichage_Actualiser_Click() 2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on appuie sur le menu "Actualiser", alors que le timer était déjà en train d'exécuter cette même fonction, les 2 essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est déjà en fonction ? J'ai essayé d'utiliser une variable globale (Dim blnActualisation As Boolean), puis de modifier son état selon que l'application est en train de modifier les recordsets ou non, mais celà ne semble pas être suffisant !
Merci d'avance, Claude
Bonjour,
Si tu utilises le timer, tu n'as plus besoin de savoir où tu en es,
puisqu'il fait sans cesse ce que tu lui demande, de tes 2 procédures, il
conviendrait de faire un seul appel au timer dés le lancement, en mettant le
rafraîchissement dedans par exemple, et... si ça cause un conflit d'écrire
dans la bdd et de la rafraîchir, de suspendre le timer durant l'ordre
d'écriture, puis de reprendre après, c'est un contexte multi-utilisateurs je
présume...
--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------
"Claude" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 0b0201c46e86$067f8530$a401280a@phx.gbl...
Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des
bases de données (classique !). Jusqu'à aujourd'hui,
l'utilisateur doit appuyer sur le menu "Actualiser" afin
de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais
moderniser cette application afin que les données se
rafraîchissent d'elles-même à toutes les minutes disons.
Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin
d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à
rafraîchir toutes les données (SetData) qui est appelée
dans mes 2 procédures :
1) mnuAffichage_Actualiser_Click()
2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on
appuie sur le menu "Actualiser", alors que le timer était
déjà en train d'exécuter cette même fonction, les 2
essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est
déjà en fonction ? J'ai essayé d'utiliser une variable
globale (Dim blnActualisation As Boolean), puis de
modifier son état selon que l'application est en train de
modifier les recordsets ou non, mais celà ne semble pas
être suffisant !
Si tu utilises le timer, tu n'as plus besoin de savoir où tu en es, puisqu'il fait sans cesse ce que tu lui demande, de tes 2 procédures, il conviendrait de faire un seul appel au timer dés le lancement, en mettant le rafraîchissement dedans par exemple, et... si ça cause un conflit d'écrire dans la bdd et de la rafraîchir, de suspendre le timer durant l'ordre d'écriture, puis de reprendre après, c'est un contexte multi-utilisateurs je présume...
-- Merci, @+, bye, Joe troll75 AROBASE iFrance POINT com ------------------------------------------ Ce message est plein de virus "certifiés" Le_Troll, éleveur de Trolls depuis César, qui disait: Avec une hache, celui qui tient le manche a toujours raison ! ------------------------------------------
"Claude" a écrit dans le message de news: 0b0201c46e86$067f8530$ Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des bases de données (classique !). Jusqu'à aujourd'hui, l'utilisateur doit appuyer sur le menu "Actualiser" afin de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais moderniser cette application afin que les données se rafraîchissent d'elles-même à toutes les minutes disons. Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à rafraîchir toutes les données (SetData) qui est appelée dans mes 2 procédures : 1) mnuAffichage_Actualiser_Click() 2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on appuie sur le menu "Actualiser", alors que le timer était déjà en train d'exécuter cette même fonction, les 2 essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est déjà en fonction ? J'ai essayé d'utiliser une variable globale (Dim blnActualisation As Boolean), puis de modifier son état selon que l'application est en train de modifier les recordsets ou non, mais celà ne semble pas être suffisant !
Merci d'avance, Claude
crevecoeur jerome
On peux aussi mettre la propriété enabled à false du bouton actualiser le temps du traitement.
Comme ça il n'y a plus de risques d'erreur Cordialement
Christian HUBERT-HUGOUD- Xtrem7 a écrit :
Contre-proposition qui fonctionne bien pour moi :
en début de ta proc d'actualisation :
Static Running&
if Running = true then exit sub Running = true
'on bosse un peu...
puis dans TOUTES les sorties de la proc : Running = false
Cela fonctionne très bien.
Christian
"Claude" a écrit dans le message de news:0b0201c46e86$067f8530$ Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des bases de données (classique !). Jusqu'à aujourd'hui, l'utilisateur doit appuyer sur le menu "Actualiser" afin de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais moderniser cette application afin que les données se rafraîchissent d'elles-même à toutes les minutes disons. Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à rafraîchir toutes les données (SetData) qui est appelée dans mes 2 procédures : 1) mnuAffichage_Actualiser_Click() 2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on appuie sur le menu "Actualiser", alors que le timer était déjà en train d'exécuter cette même fonction, les 2 essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est déjà en fonction ? J'ai essayé d'utiliser une variable globale (Dim blnActualisation As Boolean), puis de modifier son état selon que l'application est en train de modifier les recordsets ou non, mais celà ne semble pas être suffisant !
Merci d'avance, Claude
On peux aussi mettre la propriété enabled à false du bouton actualiser
le temps du traitement.
Comme ça il n'y a plus de risques d'erreur
Cordialement
Christian HUBERT-HUGOUD- Xtrem7 a écrit :
Contre-proposition qui fonctionne bien pour moi :
en début de ta proc d'actualisation :
Static Running&
if Running = true then exit sub
Running = true
'on bosse un peu...
puis dans TOUTES les sorties de la proc :
Running = false
Cela fonctionne très bien.
Christian
"Claude" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:0b0201c46e86$067f8530$a401280a@phx.gbl...
Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des
bases de données (classique !). Jusqu'à aujourd'hui,
l'utilisateur doit appuyer sur le menu "Actualiser" afin
de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais
moderniser cette application afin que les données se
rafraîchissent d'elles-même à toutes les minutes disons.
Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin
d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à
rafraîchir toutes les données (SetData) qui est appelée
dans mes 2 procédures :
1) mnuAffichage_Actualiser_Click()
2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on
appuie sur le menu "Actualiser", alors que le timer était
déjà en train d'exécuter cette même fonction, les 2
essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est
déjà en fonction ? J'ai essayé d'utiliser une variable
globale (Dim blnActualisation As Boolean), puis de
modifier son état selon que l'application est en train de
modifier les recordsets ou non, mais celà ne semble pas
être suffisant !
On peux aussi mettre la propriété enabled à false du bouton actualiser le temps du traitement.
Comme ça il n'y a plus de risques d'erreur Cordialement
Christian HUBERT-HUGOUD- Xtrem7 a écrit :
Contre-proposition qui fonctionne bien pour moi :
en début de ta proc d'actualisation :
Static Running&
if Running = true then exit sub Running = true
'on bosse un peu...
puis dans TOUTES les sorties de la proc : Running = false
Cela fonctionne très bien.
Christian
"Claude" a écrit dans le message de news:0b0201c46e86$067f8530$ Bonjour à vous tous,
Voici mon problème. J'ai une application connectée à des bases de données (classique !). Jusqu'à aujourd'hui, l'utilisateur doit appuyer sur le menu "Actualiser" afin de rafraîchir les données de l'application.
Ceci fonctionne à merveille... mais j'aimerais moderniser cette application afin que les données se rafraîchissent d'elles-même à toutes les minutes disons. Or, j'ai pensé utiliser un contrôle comme le "TIMER" afin d'exécuter cette tâche.
Là débute mon problème. J'ai une fonction qui sert à rafraîchir toutes les données (SetData) qui est appelée dans mes 2 procédures : 1) mnuAffichage_Actualiser_Click() 2) tmrActualiser_Timer()
==> Mon application plante littéralement lorsque l'on appuie sur le menu "Actualiser", alors que le timer était déjà en train d'exécuter cette même fonction, les 2 essayant de modifier les mêmes recordsets...
Comment savoir si l'une ou l'autre des 2 procédures est déjà en fonction ? J'ai essayé d'utiliser une variable globale (Dim blnActualisation As Boolean), puis de modifier son état selon que l'application est en train de modifier les recordsets ou non, mais celà ne semble pas être suffisant !