OVH Cloud OVH Cloud

arreter la lecture d'une table

6 réponses
Avatar
tvt
Je lis une table dans un formulaire a l'aide d'une boucle
cette table est tres importante et j'aimerai arreter cette lecture a
tout moment a l'aide d'une touche du clavier .
je n'ai pas trouver la solution
merci de votre aide
TVT

6 réponses

Avatar
3stone
Salut,

"tvt"
Je lis une table dans un formulaire a l'aide d'une boucle
cette table est tres importante et j'aimerai arreter cette lecture a
tout moment a l'aide d'une touche du clavier .



Que veux tu dire par : "je lis une table dans un formulaire..."

et "arreter cette lecture..."


Tu le fait en VBA, j'imagine ?

Et que fait tu pendant ce temps là ? tu les regardent défiller ?



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
tvt
"3stone" wrote in message news:<u$...
Salut,

"tvt"
Je lis une table dans un formulaire a l'aide d'une boucle
cette table est tres importante et j'aimerai arreter cette lecture a
tout moment a l'aide d'une touche du clavier .



Que veux tu dire par : "je lis une table dans un formulaire..."

et "arreter cette lecture..."


Tu le fait en VBA, j'imagine ?

Et que fait tu pendant ce temps là ? tu les regardent défiller ?


oui je les regarde défiller car je fais un traitement graphique des
données
le resultat anime un formulaire et j'aimerais arreter le traitement
sur certain
resultat (la lecture de la table est freiner par une tempo que je peux
parametre).une fois la lecture arreter ,je refairer une lecture plus
lent
de la partie qui m'interese. (c'est pour de la gestion d'alarme)


Avatar
3stone
Salut,

"tvt"
oui je les regarde défiller car je fais un traitement graphique des
données
le resultat anime un formulaire et j'aimerais arreter le traitement
sur certain
resultat (la lecture de la table est freiner par une tempo que je peux
parametre).une fois la lecture arreter ,je refairer une lecture plus
lent
de la partie qui m'interese. (c'est pour de la gestion d'alarme)



Hmmm, c'est plus clair...


Tu pourrais intercepter une touche, par exemple.
Dans le formulaire, tu mets l'apercu à Oui,
déclarer une variable Public ( boStop As Boolean)
et dans le "Sur touche appuyée" tu peux faire qque chose comme:

If KeyCode = 32 Then 'pour la barre espace
boStop = True
Keycode = 0
End if

et, quelque part dans ta boucle qui lit tes enregistrements faire

If boStop = True Then
'ton traitement
boStop = False
End If

... si j'ai bien compris ce que tu cherche!


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
tvt
"3stone" wrote in message news:...
Salut,

"tvt"
oui je les regarde défiller car je fais un traitement graphique des
données
le resultat anime un formulaire et j'aimerais arreter le traitement
sur certain
resultat (la lecture de la table est freiner par une tempo que je peux
parametre).une fois la lecture arreter ,je refairer une lecture plus
lent
de la partie qui m'interese. (c'est pour de la gestion d'alarme)



Hmmm, c'est plus clair...


Tu pourrais intercepter une touche, par exemple.
Dans le formulaire, tu mets l'apercu à Oui,
déclarer une variable Public ( boStop As Boolean)
et dans le "Sur touche appuyée" tu peux faire qque chose comme:

If KeyCode = 32 Then 'pour la barre espace
boStop = True
Keycode = 0
End if

et, quelque part dans ta boucle qui lit tes enregistrements faire

If boStop = True Then
'ton traitement
boStop = False
End If

... si j'ai bien compris ce que tu cherche!


j'ai fait se que tu m'avais écrit, mais il ne tient pas compte de
l'action sur la touche espace , j'ai un point d'arret sur la procédure
"touche appuyée" mais il ne va jamais la lire
je ne pense pas avoir oublier quelque chose !

voici une partie de mon code

Do While Not rs.EOF()
'tempo
For char = 0 To vitesse
Next char
If boStop Then
DoCmd.GoToRecord , , acNext
av_L1 'traitement
Else
GoTo fin
End If
Loop

Exit Sub
fin:
Beep
End Sub

as tu une idée ?
merci d'avance

TVT


Avatar
3stone
Salut,

"tvt"

j'ai fait se que tu m'avais écrit, mais il ne tient pas compte de
l'action sur la touche espace , j'ai un point d'arret sur la procédure
"touche appuyée" mais il ne va jamais la lire
je ne pense pas avoir oublier quelque chose !




Tu as bien mis l'appercu des touches à Oui ?

Si oui, c'est un problème de focus...

Par exemple:
Si tu veux intercepter les touches d'un formulaire
principal, mais que tu as un sous-formulaire qui
peut prendre le focus... c'est certainement lui
qui recoit le keycode, mais lui n'en fait rien...


voici une partie de mon code

Do While Not rs.EOF()
'tempo
For char = 0 To vitesse
Next char
If boStop Then
DoCmd.GoToRecord , , acNext
av_L1 'traitement
Else
GoTo fin
End If
Loop

Exit Sub
fin:
Beep
End Sub

as tu une idée ?


Heu oui... pas bôôoo, le goto fin ;-))



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
tvt
"3stone" wrote in message news:...
Salut,

"tvt"

j'ai fait se que tu m'avais écrit, mais il ne tient pas compte de
l'action sur la touche espace , j'ai un point d'arret sur la procédure
"touche appuyée" mais il ne va jamais la lire
je ne pense pas avoir oublier quelque chose !




Tu as bien mis l'appercu des touches à Oui ?

Si oui, c'est un problème de focus...

Par exemple:
Si tu veux intercepter les touches d'un formulaire
principal, mais que tu as un sous-formulaire qui
peut prendre le focus... c'est certainement lui
qui recoit le keycode, mais lui n'en fait rien...


voici une partie de mon code

Do While Not rs.EOF()
'tempo
For char = 0 To vitesse
Next char
If boStop Then
DoCmd.GoToRecord , , acNext
av_L1 'traitement
Else
GoTo fin
End If
Loop

Exit Sub
fin:
Beep
End Sub

as tu une idée ?


Heu oui... pas bôôoo, le goto fin ;-))


CA Y EST j'ai trouve la solution
il manque la fonction "DoEvents" pour obliger ACCESS a aller voir se
qui se passe sous Windows
Voici mon nouveau code et il fonctionne bien

Do Until deren.EOF
For char = 0 To vitesse
Next char
If boStop Then
deren.MoveNext
av_L4
Repaint 'pour rafraichir l'écran
DoEvents 'pour aller voir windows
Else
Exit Do
End If
Loop

merci pour ton aide

A+

TVT