Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses

1 2
Avatar
Valentín
André,

on doit savoir quel fichiers que ti veux traité.

Tu veux traité tous les fichiers du "C:videos" ou tu cherche les
noms dans une table de la base?- Quel est la requete base du
formulaire?.

Si tu peux nous donné plus details on peux trouvé une solution.

Valentín Playá
Sonotronic
Madrid, Espagne
*************************************************************************** ********
On 27 ago, 19:39, André wrote:
Bonjour à tous,
Access-2007.  J'ai une procédure dans un sous formulaire qui exécut e
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écut e 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-desso us 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, Op Execute)
    If Not Réponse = True Then
        MsgBox Réponse
    End If
End Sub


Avatar
André
Bonjour Valentin,
Les noms de fichiers sont stockés dans le champs [NomFichier] du sous
formulaire
[F-ENFANTS-STIMULI].Form! Ma procédure fonctionne très bien mais je dois
cliquer sur le nom du fichier stocké dans le champ pour que celui s'exécute.
Je veux, à l'aide d'un bouton de commande, que les fichiers s'exécutent les
uns à la suite des autres, sans que j'ai à cliquer sur le nom. Pour un
enregistrement dans mon formulaire principal je peux avoir plusieurs fichiers
à exécuter dans le sous formulaire.
Merci de l'attention que tu portes à ma demande.


"Valentín" a écrit :

André,

on doit savoir quel fichiers que ti veux traité.

Tu veux traité tous les fichiers du "C:videos" ou tu cherche les
noms dans une table de la base?- Quel est la requete base du
formulaire?.

Si tu peux nous donné plus details on peux trouvé une solution.

Valentín Playá
Sonotronic
Madrid, Espagne
***********************************************************************************
On 27 ago, 19:39, André wrote:
> 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




Avatar
Valentín
André,

tu peux voir si ça marche.

Private Sub NomFichier_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]
Réponse = OpenFileExtend("C:videos" & Nfiche, Maximized,
OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
rst.MoveNext
Loop
End Sub

Cordialement,

Valentin
*********************************************************
On 27 ago, 21:56, André wrote:
Bonjour Valentin,
Les noms de fichiers sont stockés dans le champs [NomFichier] du sous
formulaire
[F-ENFANTS-STIMULI].Form!  Ma procédure fonctionne très bien mais j e dois
cliquer sur le nom du fichier stocké dans le champ pour que celui s'ex écute.
Je veux, à l'aide d'un bouton de commande,  que les fichiers s'exéc utent les
uns à la suite des autres, sans que j'ai à cliquer sur le nom.   Po ur un
enregistrement dans mon formulaire principal je peux avoir plusieurs fich iers
à exécuter dans le sous formulaire.
Merci de l'attention que tu portes à ma demande.

"Valentín" a écrit :

> André,

> on doit savoir quel fichiers que ti veux traité.

> Tu veux traité tous les fichiers du "C:videos" ou tu cherche les
> noms dans une table de la base?- Quel est la requete base du
> formulaire?.

> Si tu peux nous donné plus details on peux trouvé une solution.

> Valentín Playá
> Sonotronic
> Madrid, Espagne
> *********************************************************************** ************
> On 27 ago, 19:39, André wrote:
> > 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 su r 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 exper t en VB est-ce
> > qu'il y a une âme charitable qui pourrait m'aider.  J'inclus ci-d essous 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![NomFich ier]
> >     Réponse = OpenFileExtend("C:videos" & Nfiche, Maximized , OpExecute)
> >     If Not Réponse = True Then
> >         MsgBox Réponse
> >     End If
> > End Sub


Avatar
Fabien
Valentín a écrit :
André,

tu peux voir si ça marche.

Private Sub NomFichier_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]
Réponse = OpenFileExtend("C:videos" & Nfiche, Maximized,
OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
rst.MoveNext
Loop
End Sub

Cordialement,

Valentin
*********************************************************
On 27 ago, 21:56, André wrote:
Bonjour Valentin,
Les noms de fichiers sont stockés dans le champs [NomFichier] du sous
formulaire
[F-ENFANTS-STIMULI].Form! Ma procédure fonctionne très bien mais je dois
cliquer sur le nom du fichier stocké dans le champ pour que celui s'exécute.
Je veux, à l'aide d'un bouton de commande, que les fichiers s'exécutent les
uns à la suite des autres, sans que j'ai à cliquer sur le nom. Pour un
enregistrement dans mon formulaire principal je peux avoir plusieurs fichiers
à exécuter dans le sous formulaire.
Merci de l'attention que tu portes à ma demande.

"Valentín" a écrit :

André,
on doit savoir quel fichiers que ti veux traité.
Tu veux traité tous les fichiers du "C:videos" ou tu cherche les
noms dans une table de la base?- Quel est la requete base du
formulaire?.
Si tu peux nous donné plus details on peux trouvé une solution.
Valentín Playá
Sonotronic
Madrid, Espagne
***********************************************************************************
On 27 ago, 19:39, André wrote:
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









Bonjour,
Juste une petite correction en passant
si fiche = Forms![F-ENFANTS]![F-ENFANTS-STIMULI].Form![NomFichier]
alors je pense que
Réponse = OpenFileExtend("C:videos" & Nfiche, Maximized, OpExecute)
doit être écrit
Réponse = OpenFileExtend("C:videos" & fiche, Maximized, OpExecute)
Idem dans la boucle ;-)
De plus je pense que les fichiers vont s'exécuter presque simultanément.
La boucle n'attendant pas la fin de l'openfileextend pour passer au suivant.
@+
Avatar
André
Prime abord merci à Valentin et Fabien,
Ça ne boucle toujours pas. Ça exécute toujours le premier fichier et j'en
ai trois. J'insère ma procédure de nouveau en espérant que je ne me suis pas
trompé. P.S. Dans le OpenFile Extend.... que je fasse Nfiche ou Fiche c'est
le même résultat. Autre suggestion ?
Gros merci encore une fois.

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]
Réponse = OpenFileExtend("C:videos" & fiche, Maximized, OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
rst.MoveNext
Loop
End Sub
Avatar
Fabien
André a écrit :
Prime abord merci à Valentin et Fabien,
Ça ne boucle toujours pas. Ça exécute toujours le premier fichier et j'en
ai trois. J'insère ma procédure de nouveau en espérant que je ne me suis pas
trompé. P.S. Dans le OpenFile Extend.... que je fasse Nfiche ou Fiche c'est
le même résultat. Autre suggestion ?
Gros merci encore une fois.

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]
Réponse = OpenFileExtend("C:videos" & fiche, Maximized, OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
rst.MoveNext
Loop
End Sub



et en modifiant le set RST= currentdb.openrecordset("select [nom
fichier] from latable where [lelien] = " & me.lelien)

[lelien] étant le champ qui te permet de lier les informations contenu
dans ton formulaire et les fichiers qui s'y rapportent.
PS : utilise l'option explicit dans ton module. Aisin il n'y aurat pas
de confusion dans les noms de variables. Si un nom est mal orthographié
ou qu'une variable n'as pas été définie, il y aura une erreur de
compilation.
Avatar
Blaise Cacramp
Bjr

rst.MoveLast
pour le forcer à voir toute la requête

--
Cdt

"André" a écrit dans le message de news:

Prime abord merci à Valentin et Fabien,
Ça ne boucle toujours pas. Ça exécute toujours le premier fichier et j'en
ai trois. J'insère ma procédure de nouveau en espérant que je ne me suis
pas
trompé. P.S. Dans le OpenFile Extend.... que je fasse Nfiche ou Fiche
c'est
le même résultat. Autre suggestion ?
Gros merci encore une fois.

Private Sub Lancement_Click()
Dim Réponse As Variant
Dim rst As DAO.Recordset
Set rst = Forms![F-ENFANTS]![F-ENFANTS-STIMULI].Form.RecordsetClone


rst.MoveLast
If rst.BOF And rst.EOF Then
Exit Sub
End If
rst.MoveFirst
Do Until rst.EOF
fiche = rst![NomFichier]
Réponse = OpenFileExtend("C:videos" & fiche, Maximized, OpExecute)
If Not Réponse = True Then
MsgBox Réponse
End If
rst.MoveNext
Loop
End Sub



Avatar
Valentín
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
*************************************************************************** ***

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]
FollowHyperlink "C:videos" & Nfiche
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Sub


Cordialement,

Valentín
****************************************************************
On 28 ago, 15:09, André wrote:
Prime abord merci à Valentin et Fabien,
Ça ne boucle toujours pas.  Ça exécute toujours le premier fichie r et j'en
ai trois.  J'insère ma procédure de nouveau en espérant que je ne me suis pas
trompé.  P.S. Dans le OpenFile Extend.... que je fasse Nfiche ou Fich e c'est
le même résultat.  Autre suggestion ?
Gros merci encore une fois.

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]
    Réponse = OpenFileExtend("C:videos" & fiche, Maximized, OpE xecute)
    If Not Réponse = True Then
        MsgBox Réponse
    End If
    rst.MoveNext
Loop
End Sub


Avatar
André
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
******************************************************************************

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]
FollowHyperlink "C:videos" & Nfiche
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Sub


Cordialement,

Valentín
****************************************************************
On 28 ago, 15:09, André wrote:
> Prime abord merci à Valentin et Fabien,
> Ça ne boucle toujours pas. Ça exécute toujours le premier fichier et j'en
> ai trois. J'insère ma procédure de nouveau en espérant que je ne me suis pas
> trompé. P.S. Dans le OpenFile Extend.... que je fasse Nfiche ou Fiche c'est
> le même résultat. Autre suggestion ?
> Gros merci encore une fois.
>
> 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]
> Réponse = OpenFileExtend("C:videos" & fiche, Maximized, OpExecute)
> If Not Réponse = True Then
> MsgBox Réponse
> End If
> rst.MoveNext
> Loop
> End Sub




Avatar
André
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


1 2