OVH Cloud OVH Cloud

pauses entre deux applications

2 réponses
Avatar
hervé
bonjour =E0 toutes et =E0 tous

Dans le cadre d'une proc=E9dure =EAv=E8nementielle (sur=20
minuterie d'un formulaire), j'utilise un Call Shell puis=20
un DoCmd.TransferText

le call shell lance une commande ftp par l'intermediaire
d'un fichier de commande en .bat
et le DoCmd.TransfertText import un fichier.txt (provenant=20
du transfert FTP pr=E9c=E9damment nomm=E9)

mon probleme est que m=EAme avec un DoEvents,=20
le call shell et le docmd.transfert se lancent quasi=20
simultan=E9ment

NB: access n'a pas l'information de la fin du transfert FTP
cela prend environ 10 secondes

serait-il possible de g=E9n=E9rer une temporisation, pause ou=20
je ne sais quoi, qui permettrait d'executer le=20
docmd.transfert une fois le FTP termin=E9=20

merci de votre aide

vous trouverez ci-dessous la syntaxe de la proc=E9dure=20

Private Sub Form_Timer()
DoEvents
Dim stAppName As String
stAppName =3D "\\hlf53438\FTP_ACCESS\transfert=20
litige.bat"
Call Shell(stAppName, 1)
=20
DoEvents
Dim formname As String
formname =3D "formattente"
DoCmd.OpenForm formname
=20
=20
=20
DoEvents
Dim sttypetransfert As String
sttypetransfert =3D "Fdlit01 Sp=E9cification d'importation"
Dim stchemin As String
stchemin =3D "\\hlf53438\FTP_ACCESS\fdlit01.txt"
DoCmd.TransferText acImportFixed,=20
sttypetransfert, "Fdlit01", stchemin, 0
=20
DoEvents
Dim macroname As String
macroname =3D "maj_plus_supp_tab_fdlit01"
DoCmd.RunMacro macroname
=20
End Sub

2 réponses

Avatar
michel
Bonjour
Va voir le site d'Hervé
www.self-access.com
HTH
Michel
"hervé" a écrit dans le message de news:
10d3601c3bf0b$73ef3d70$
bonjour à toutes et à tous

Dans le cadre d'une procédure êvènementielle (sur
minuterie d'un formulaire), j'utilise un Call Shell puis
un DoCmd.TransferText

le call shell lance une commande ftp par l'intermediaire
d'un fichier de commande en .bat
et le DoCmd.TransfertText import un fichier.txt (provenant
du transfert FTP précédamment nommé)

mon probleme est que même avec un DoEvents,
le call shell et le docmd.transfert se lancent quasi
simultanément

NB: access n'a pas l'information de la fin du transfert FTP
cela prend environ 10 secondes

serait-il possible de générer une temporisation, pause ou
je ne sais quoi, qui permettrait d'executer le
docmd.transfert une fois le FTP terminé

merci de votre aide

vous trouverez ci-dessous la syntaxe de la procédure

Private Sub Form_Timer()
DoEvents
Dim stAppName As String
stAppName = "hlf53438FTP_ACCESStransfert
litige.bat"
Call Shell(stAppName, 1)

DoEvents
Dim formname As String
formname = "formattente"
DoCmd.OpenForm formname



DoEvents
Dim sttypetransfert As String
sttypetransfert = "Fdlit01 Spécification d'importation"
Dim stchemin As String
stchemin = "hlf53438FTP_ACCESSfdlit01.txt"
DoCmd.TransferText acImportFixed,
sttypetransfert, "Fdlit01", stchemin, 0

DoEvents
Dim macroname As String
macroname = "maj_plus_supp_tab_fdlit01"
DoCmd.RunMacro macroname

End Sub
Avatar
Raymond [mvp]
Bonjour.

tu peux utiliser l'api WaitForSingleObject. tu trouveras un exemple sur :
http://access.seneque.free.fr/shell_wait.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"hervé" a écrit dans le message de
news:10d3601c3bf0b$73ef3d70$
bonjour à toutes et à tous

Dans le cadre d'une procédure êvènementielle (sur
minuterie d'un formulaire), j'utilise un Call Shell puis
un DoCmd.TransferText

le call shell lance une commande ftp par l'intermediaire
d'un fichier de commande en .bat
et le DoCmd.TransfertText import un fichier.txt (provenant
du transfert FTP précédamment nommé)

mon probleme est que même avec un DoEvents,
le call shell et le docmd.transfert se lancent quasi
simultanément

NB: access n'a pas l'information de la fin du transfert FTP
cela prend environ 10 secondes

serait-il possible de générer une temporisation, pause ou
je ne sais quoi, qui permettrait d'executer le
docmd.transfert une fois le FTP terminé

merci de votre aide

vous trouverez ci-dessous la syntaxe de la procédure

Private Sub Form_Timer()
DoEvents
Dim stAppName As String
stAppName = "hlf53438FTP_ACCESStransfert
litige.bat"
Call Shell(stAppName, 1)

DoEvents
Dim formname As String
formname = "formattente"
DoCmd.OpenForm formname



DoEvents
Dim sttypetransfert As String
sttypetransfert = "Fdlit01 Spécification d'importation"
Dim stchemin As String
stchemin = "hlf53438FTP_ACCESSfdlit01.txt"
DoCmd.TransferText acImportFixed,
sttypetransfert, "Fdlit01", stchemin, 0

DoEvents
Dim macroname As String
macroname = "maj_plus_supp_tab_fdlit01"
DoCmd.RunMacro macroname

End Sub