OVH Cloud OVH Cloud

function ??

9 réponses
Avatar
URIANE
Bonjour et tous mes voeux "de bonne humeur" et tout et tout..
Première question de l'année, dans mon formulaire de "MENUS", j'ai l'option
"Menu des requêtes", j'ai inséré la fonction suivante :
Function edit_fichesConges()
stDocName = "Sélect_étiquettes_fiches_d'absences"
DoCmd.OpenQuery stDocName
Dim response As String
Do Until response = "y" Or response = "n"
response = InputBox("Voulez-vous continuer")
If response = "y" Then
DoCmd.OpenQuery stDocName
Else
DoCmd.OpenReport "Étiquettes rq_etiq_agents", acViewPreview
End If
Loop
End Function
Elle fonctionne bien mais quand j'ai une centaine de saisie ça me gêne de
presser la touche "entrée" après avoir répondu "y" pouvez vous m'indiquer ce
que je pourrais écrire derrière :
response =InputBox("Voulez-vous continuer")
if response = "y" then ?...il ouvre de nouveau ma requête sans confirmation
de la touche "entrée du clavier"
if response = "n" then ?....idem pas de confirmation par la touche "entrée"
et mon état "étiquettes" s'ouvre

En fait c'est l'édition d'une plaquette d'étiquettes mais je peux avoir une
cinquantaine d'étiquettes à imprimer, ou bien seulement 5 ou 6 voire 1 ou 2
donc lorsque j'ai 50 voire 100 étiquettes en suivant, je perds du temps,
donc je pense que ma façon d'écrire mon code n'est peut être pas géniale !!!
Merci si vous pouvez me corriger
Cordialement

9 réponses

Avatar
ze Titi
Bonjour URIANE et tous mes voeux à toi !

Plutôt que de passer par une InputBox, tu pourrais passer par un
formulaire en mode Modal et Popup. Tu pourrais utiliser l'évènement
"OnKeyPress" (je ne sais plus le terme exact en français puisque je
travaille sur un Access Anglais...). En récupérant le code de la touche
utilisée, tu sais l'évènement à déclencher.

Ca n'est qu'une idée...


Dans ton message <# du jeudi
Bonjour et tous mes voeux "de bonne humeur" et tout et tout..
Première question de l'année, dans mon formulaire de "MENUS", j'ai l'option
"Menu des requêtes", j'ai inséré la fonction suivante :
Function edit_fichesConges()
stDocName = "Sélect_étiquettes_fiches_d'absences"
DoCmd.OpenQuery stDocName
Dim response As String
Do Until response = "y" Or response = "n"
response = InputBox("Voulez-vous continuer")
If response = "y" Then
DoCmd.OpenQuery stDocName
Else
DoCmd.OpenReport "Étiquettes rq_etiq_agents", acViewPreview
End If
Loop
End Function
Elle fonctionne bien mais quand j'ai une centaine de saisie ça me gêne de
presser la touche "entrée" après avoir répondu "y" pouvez vous m'indiquer ce
que je pourrais écrire derrière :
response =InputBox("Voulez-vous continuer")
if response = "y" then ?...il ouvre de nouveau ma requête sans confirmation
de la touche "entrée du clavier"
if response = "n" then ?....idem pas de confirmation par la touche "entrée"
et mon état "étiquettes" s'ouvre

En fait c'est l'édition d'une plaquette d'étiquettes mais je peux avoir une
cinquantaine d'étiquettes à imprimer, ou bien seulement 5 ou 6 voire 1 ou 2
donc lorsque j'ai 50 voire 100 étiquettes en suivant, je perds du temps, donc
je pense que ma façon d'écrire mon code n'est peut être pas géniale !!!
Merci si vous pouvez me corriger
Cordialement


--
Voilou !
Bon courage !
Cordialement,
ze Titi

Avatar
URIANE
Bonjour Jessy,
je n'arrive pas à construire ma "fonction", peux tu m'aider à l'écrire
correctement dans le sens de ta réponse ?
Merci
Avatar
URIANE
Bonjour et merci,
je ne comprends pas ta réponse, peux tu m'en dire un peu plus, Jessy m'a
également apporté une réponse, j'essaierai bien les deux pour voir .....si
tu peux m'écrire la façon que tu penses ça m'aiderais davantage.
Merci
Avatar
ze Titi
Après réflexion et lecture de la réponse de Jessy, celle de Jessy me
semble beaucoup plus appropriée et simple à mettre en place à une
modification près:

Function edit_fichesConges()
stDocName = "Sélect_étiquettes_fiches_d'absences"
DoCmd.OpenQuery stDocName
Dim response As String
Do
response = Msgbox("Voulez-vous continuer",vbYesNoCancel)
If response = vbYes Then
DoCmd.OpenQuery stDocName
Else
DoCmd.OpenReport "Étiquettes rq_etiq_agents", acViewPreview
End If
Loop until response <> vbCancel
End Function

A tester mais ça doit aller.
En théorie, tant que l'utilisateur ne cliquera pas sur Annuler, ça
tournera.

Dans ton message <# du jeudi
Bonjour et merci,
je ne comprends pas ta réponse, peux tu m'en dire un peu plus, Jessy m'a
également apporté une réponse, j'essaierai bien les deux pour voir .....si tu
peux m'écrire la façon que tu penses ça m'aiderais davantage.
Merci


--
Voilou !
Bon courage !
Cordialement,
ze Titi

Avatar
ze Titi
Rectification:

Function edit_fichesConges()
stDocName = "Sélect_étiquettes_fiches_d'absences"
DoCmd.OpenQuery stDocName
Dim response
Do
response = Msgbox("Voulez-vous continuer",vbYesNoCancel)
If response = vbYes Then
DoCmd.OpenQuery stDocName
ElseIf response=vbNo
DoCmd.OpenReport "Étiquettes rq_etiq_agents", acViewPreview
End If
Loop until response<>vbCancel
End Function


Dans ton message du jeudi
Après réflexion et lecture de la réponse de Jessy, celle de Jessy me semble
beaucoup plus appropriée et simple à mettre en place à une modification près:

Function edit_fichesConges()
stDocName = "Sélect_étiquettes_fiches_d'absences"
DoCmd.OpenQuery stDocName
Dim response As String
Do
response = Msgbox("Voulez-vous continuer",vbYesNoCancel)
If response = vbYes Then
DoCmd.OpenQuery stDocName
Else
DoCmd.OpenReport "Étiquettes rq_etiq_agents", acViewPreview
End If
Loop until response <> vbCancel
End Function

A tester mais ça doit aller.
En théorie, tant que l'utilisateur ne cliquera pas sur Annuler, ça tournera.

Dans ton message <# du jeudi 11/01/2007
Bonjour et merci,
je ne comprends pas ta réponse, peux tu m'en dire un peu plus, Jessy m'a
également apporté une réponse, j'essaierai bien les deux pour voir .....si
tu peux m'écrire la façon que tu penses ça m'aiderais davantage.
Merci



--
Voilou !
Bon courage !
Cordialement,
ze Titi


Avatar
URIANE
Merci ça marche !!!! quel bonheur ....
Avatar
URIANE
Bon je rectifie ça marche mais pas plus de deux fois en suivant, quand la
question voulez-vous continuer etc.....je réponds oui une première fois ça
fonctionne, puis plus de question ????? alors qu'à chaque saisie je devrais
avoir la question continuer ou arrêter ..... le loop c'est à ça qu'il sert
??? normalement tant que je ne dis pas "non" ou "cancel" je devrais pouvoir
continuer ??? ou est le "bug"
Merci
Avatar
ze Titi
Loop Until response=vbCancel

à la place de

Loop Until response<>vbCancel

Dans ton message du jeudi
Bon je rectifie ça marche mais pas plus de deux fois en suivant, quand la
question voulez-vous continuer etc.....je réponds oui une première fois ça
fonctionne, puis plus de question ????? alors qu'à chaque saisie je devrais
avoir la question continuer ou arrêter ..... le loop c'est à ça qu'il sert
??? normalement tant que je ne dis pas "non" ou "cancel" je devrais pouvoir
continuer ??? ou est le "bug"
Merci


--
Voilou !
Bon courage !
Cordialement,
ze Titi

Avatar
URIANE
Merci maintenant c'est good
Bonne soirée