OVH Cloud OVH Cloud

Boucle enVB

12 réponses
Avatar
André
Bonjour à tous,
Access-2007. J'ai une procédure dans un sous formulaire qui exécute
l'ouverture d'un fichier dont le nom est stocké dans un champ. L'événement
se produit sur un clic sur le nom du fichier. Donc si je clique sur le
premier nom, il s'exécute, si je clique sur le deuxième il s'exécute et ainsi
de suite. Ça fonctionne à merveille. Maintenant j'aimerais insérer ma
procédure dans une boucle afin que les fichiers s'exécute les uns à la suite
des autres sans que je n'ai à intervenir. N'étant pas un expert en VB est-ce
qu'il y a une âme charitable qui pourrait m'aider. J'inclus ci-dessous une
partie de ma procédure que j'aimerais «boucler».
Merci à tous.

Private Sub NomFichier_Click()
Dim Réponse As Variant
fiche = Forms![F-ENFANTS]![F-ENFANTS-STIMULI].Form![NomFichier]
Réponse = OpenFileExtend("C:\videos\" & Nfiche, Maximized, OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
End Sub

2 réponses

1 2
Avatar
Valentín
André,

essayer ça (Oui pour ouvrir le fichier, non pour non ouvrir le fichier
et Cancel pour arreté la procedure):

Private Sub Lancement_Click()
Dim Réponse As Variant
Dim ReponseOuvrir As Variant
Dim rst As DAO.Recordset
Set rst = Forms![F-ENFANTS]![F-ENFANTS-STIMULI].Form.RecordsetClone
If rst.BOF And rst.EOF Then
Exit Sub
End If
rst.MoveFirst
Do Until rst.EOF
fiche = rst![NomFichier]
ReponseOuvrir = MsgBox("Ouvrir Fichier: " & Nfiche & " ou Cancel
pour arrêté", vbYesNoCancel)
If ReponseOuvrir = vbYes Then
Réponse = OpenFileExtend("C:videos" & Nfiche, Maximized,
OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
ElseIf ReponseOuvrir = vbCancel Then
Exit Sub
ElseIf ReponseOuvrir = vbNo Then
'rien a fair
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Sub

Cordialement,

Valentín
*************************************************************************** *****
On 29 ago, 14:18, André wrote:
Bonjour encore moi,

Avant l'exécution du fichier son nom s'affiche, c'est parfait, par cont re
y-a-t-il un moyen d'annuler la procédure en cours de route?  Exemple,
j'exécute le premier fichier et le deuxième et j'arrête la procéd ure avant
qu'il exécute les suivants.
Merci de votre patience
André

"André" a écrit :



> Valentin,
> Absolument génial.  Ça fonctionne à merveille.  Je te remerci e beaucoup du
> temps que tu a consacré à mon problème.  Je remercie aussi Fabi en et Blaise
> pour leur dévouement. Wow...Fantastique.

> Du Québec, je vous dis encore une fois bravo et merci!

> "Valentín" a écrit :

> > André,

> > Le bouton pour executer la procedure doit être au formulaire
> > princlipal. Tu peux essayer les deux options:

> > Private Sub Lancement_Click()
> > Dim Réponse As Variant
> > Dim rst As DAO.Recordset
> > Set rst = Forms![F-ENFANTS]![F-ENFANTS-STIMULI].Form.RecordsetClone
> > If rst.BOF And rst.EOF Then
> >     Exit Sub
> > End If
> > rst.MoveFirst
> > Do Until rst.EOF
> >     fiche = rst![NomFichier]
> >     MsgBox "Fichier: " & "C:videos" & Nfiche
> >     Réponse = OpenFileExtend("C:videos" & Nfiche, Maximized ,
> > OpExecute)
> >     If Not Réponse = True Then
> >         MsgBox Réponse
> >     End If
> >     rst.MoveNext
> > Loop
> > rst.Close
> > Set rst = Nothing
> > End Sub- Ocultar texto de la cita -

- Mostrar texto de la cita -


Avatar
André
Absolument génial. Je te remercie beaucoup Valentin. Ça fonctionne au delà
de mes espérances.
André

"Valentín" a écrit :

André,

essayer ça (Oui pour ouvrir le fichier, non pour non ouvrir le fichier
et Cancel pour arreté la procedure):

Private Sub Lancement_Click()
Dim Réponse As Variant
Dim ReponseOuvrir As Variant
Dim rst As DAO.Recordset
Set rst = Forms![F-ENFANTS]![F-ENFANTS-STIMULI].Form.RecordsetClone
If rst.BOF And rst.EOF Then
Exit Sub
End If
rst.MoveFirst
Do Until rst.EOF
fiche = rst![NomFichier]
ReponseOuvrir = MsgBox("Ouvrir Fichier: " & Nfiche & " ou Cancel
pour arrêté", vbYesNoCancel)
If ReponseOuvrir = vbYes Then
Réponse = OpenFileExtend("C:videos" & Nfiche, Maximized,
OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
ElseIf ReponseOuvrir = vbCancel Then
Exit Sub
ElseIf ReponseOuvrir = vbNo Then
'rien a fair
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Sub

Cordialement,

Valentín
********************************************************************************
On 29 ago, 14:18, André wrote:
> Bonjour encore moi,
>
> Avant l'exécution du fichier son nom s'affiche, c'est parfait, par contre
> y-a-t-il un moyen d'annuler la procédure en cours de route? Exemple,
> j'exécute le premier fichier et le deuxième et j'arrête la procédure avant
> qu'il exécute les suivants.
> Merci de votre patience
> André
>
> "André" a écrit :
>
>
>
> > Valentin,
> > Absolument génial. Ça fonctionne à merveille. Je te remercie beaucoup du
> > temps que tu a consacré à mon problème. Je remercie aussi Fabien et Blaise
> > pour leur dévouement. Wow...Fantastique.
>
> > Du Québec, je vous dis encore une fois bravo et merci!
>
> > "Valentín" a écrit :
>
> > > André,
>
> > > Le bouton pour executer la procedure doit être au formulaire
> > > princlipal. Tu peux essayer les deux options:
>
> > > Private Sub Lancement_Click()
> > > Dim Réponse As Variant
> > > Dim rst As DAO.Recordset
> > > Set rst = Forms![F-ENFANTS]![F-ENFANTS-STIMULI].Form.RecordsetClone
> > > If rst.BOF And rst.EOF Then
> > > Exit Sub
> > > End If
> > > rst.MoveFirst
> > > Do Until rst.EOF
> > > fiche = rst![NomFichier]
> > > MsgBox "Fichier: " & "C:videos" & Nfiche
> > > Réponse = OpenFileExtend("C:videos" & Nfiche, Maximized,
> > > OpExecute)
> > > If Not Réponse = True Then
> > > MsgBox Réponse
> > > End If
> > > rst.MoveNext
> > > Loop
> > > rst.Close
> > > Set rst = Nothing
> > > End Sub- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -




1 2