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

impression directe d un etat access via un formulaire

12 réponses
Avatar
ALF
bonjour a tous,

j ai construit un formulaire avec un bouton qui une fois activé declenche l
execution de l impresion de plusieurs etats access.j ai remarqué que tout
fonctionne sauf que le formulaire se bloque et on est obligé de le fermer
puis de le reouvrir pour retrouver le formulaire actif...

j ai tout d abord construit une macro access avec comme action "ouvrir un
etat" en mode impression directe et cela pour chaque etat puis j ai converti
cette macro en code vba que j ai affecté au bouton.
faut il rajouter la fermeture de chaque etat en code vba pour fermer la
procedure ou faut il faire autre chose??..
et d une maniere generale lorque l on ouvre aussi des requetes actions comme
mise a jour ou ajout , faut il faire une fermeture de ces requetes en code
vba afin de sortir proprement?? MERCI DE VOTRE AIDE.

--
ALF

10 réponses

1 2
Avatar
Jessy Sempere [MVP]
Bonjour

Qu'entends-tu par "le formulaire se bloque" ???

Sinon si tu fais une impression directe, tu n'as pas à refermer l'état après
pareil pour les requête action, pas besoin de les fermer après exécution.

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"ALF" a écrit dans le message news:

bonjour a tous,

j ai construit un formulaire avec un bouton qui une fois activé declenche
l

execution de l impresion de plusieurs etats access.j ai remarqué que tout
fonctionne sauf que le formulaire se bloque et on est obligé de le fermer
puis de le reouvrir pour retrouver le formulaire actif...

j ai tout d abord construit une macro access avec comme action "ouvrir un
etat" en mode impression directe et cela pour chaque etat puis j ai
converti

cette macro en code vba que j ai affecté au bouton.
faut il rajouter la fermeture de chaque etat en code vba pour fermer la
procedure ou faut il faire autre chose??..
et d une maniere generale lorque l on ouvre aussi des requetes actions
comme

mise a jour ou ajout , faut il faire une fermeture de ces requetes en code
vba afin de sortir proprement?? MERCI DE VOTRE AIDE.

--
ALF


Avatar
Raymond [mvp]
Salut Jessy.

pour ne pas avoir de problèmes de ce genre (ça arrive), il faut lancer les
états avec l'option acDialog ce qui permet de n'avoir qu'un seul état dans
le spool.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message de
news: 42524cf1$
Bonjour

Qu'entends-tu par "le formulaire se bloque" ???

Sinon si tu fais une impression directe, tu n'as pas à refermer l'état
après
pareil pour les requête action, pas besoin de les fermer après exécution.

@+
Jessy Sempere - Access MVP


Avatar
ALF
bonjour

En fait , C'est la base de donnees qui se bloque...aucune commande n est
accessible...la base de données reste figée sur le formulaire d'accueil...si
l on réduit ce formulaire,celui ci apparait vide lorsqu il est agrandi de
nouveau...
a noter que quand le traitement est terminé,l'impression n'est pas fini mais
s'achève tout de même...ce décalage n est il pas la cause de mes soucis??...

je te laisse la procédure evenementielle a toute fin utile...

Private Sub
IMPORT_FREGATE_J_ET_NET_J_1_SUR_ACCESS_ET_EXPORT_SUR_EXCEL_DblClick(Cancel As
Integer)

DoCmd.SetWarnings False
DoCmd.Echo False, "Macro en cours d'exécution"
DoCmd.OpenTable "FREGATEJOUR", acNormal, acEdit
DoCmd.RunCommand acCmdSelectAllRecords
DoCmd.RunCommand acCmdDelete
DoCmd.Close acTable, "FREGATEJOUR"
DoCmd.OpenTable "NETJOUR", acNormal, acEdit
DoCmd.RunCommand acCmdSelectAllRecords
DoCmd.RunCommand acCmdDelete
DoCmd.Close acTable, "NETJOUR"
DoCmd.TransferSpreadsheet acImport, 5, "FREGATEJOUR",
"U:CTX_RHONE_PROVENCE_CORSEfregate-net jourfregj1.xls", True, ""
DoCmd.TransferSpreadsheet acImport, 5, "FREGATEJOUR",
"U:CTX_RHONE_PROVENCE_CORSEfregate-net jourfregj4.xls", True, ""
DoCmd.TransferSpreadsheet acImport, 5, "NETJOUR",
"U:CTX_RHONE_PROVENCE_CORSEfregate-net journetj1j4", True, ""
DoCmd.OpenQuery "FILTRE DR", acNormal, acEdit
DoCmd.OpenQuery "CREATION FRAICHEUR", acNormal, acAdd
DoCmd.TransferSpreadsheet acExport, 5, "FREG SFRB03CO",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCFREG SFRB03CO",
True, ""
DoCmd.TransferSpreadsheet acExport, 5, "FREG SFRB03MA",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCFREG
SFRB03MA.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "FREG SFRB03RD",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCFREG
SFRB03RD.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "FREG AUTRES INTERLOC",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCFREG AUTRES
INTERLOC.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "NET SFRB03CO",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCNET SFRB03CO.XLS",
True, ""
DoCmd.TransferSpreadsheet acExport, 5, "NET SFRB03MA",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCNET SFRB03MA.XLS",
True, ""
DoCmd.TransferSpreadsheet acExport, 5, "NET SFRB03RD",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCNET SFRB03RD.XLS",
True, ""
DoCmd.TransferSpreadsheet acExport, 5, "NET AUTRES INTERLOC",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCNET AUTRES
INTERLOC.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "TOTAL FREG PAR INTERLOC JOUR",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCTOTAL FREG PAR
INTERLOC JOUR.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "TOTAL NET PAR INTERLOC JOUR",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCTOTAL NET PAR
INTERLOC JOUR.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "DOSSIERS FREGATE ABSENTS SUR LE
NET", "U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCDOSSIERS
FREGATE ABSENTS SUR LE NET.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "DOSSIERS DU NET ABSENTS SUR
FREGATE", "U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCDOSSIERS
DU NET ABSENTS SUR FREGATE.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "DOUBLONS POUR FREGATEJOUR",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCDOUBLONS POUR
FREGATEJOUR.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "DOUBLONS POUR NETJOUR",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCDOUBLONS POUR
NETJOUR.XLS", True, ""
DoCmd.TransferSpreadsheet acExport, 5, "FRAICHEUR NET >100J A
RETRAITER", "U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT
INTERLOCFRAICHEUR NET SUP 100J A RETRAITER.XLS", True, ""
DoCmd.OpenReport "dossiers du NET absents sur FREGATE", acNormal, "", ""
DoCmd.OpenReport "DOSSIERS FREGATE ABSENTS SUR LE NET", acNormal, "", ""
DoCmd.OpenReport "doublons pour FREGATEJOUR", acNormal, "", ""
DoCmd.OpenReport "doublons pour NETJOUR", acNormal, "", ""
DoCmd.OpenReport "FRAICHEUR NET >100J A RETRAITER", acNormal, "", ""
DoCmd.OpenReport "FREG AUTRES INTERLOC", acNormal, "", ""
DoCmd.OpenReport "MONTANT DIFFERENT", acNormal, "", ""
DoCmd.OpenReport "NET AUTRES INTERLOC", acNormal, "", ""
DoCmd.OpenReport "TOTAL FREG PAR INTERLOC JOUR", acNormal, "", ""
DoCmd.OpenReport "TOTAL NET PAR INTERLOC JOUR", acNormal, "", ""
Beep
Beep
Beep
Beep
MsgBox "TRAITEMENT TERMINE", vbInformation, "Importation Fregate(J) et
Net(J+1)"


Import_Fregate_J_et_Net_J_1__et_export__Exit:
Exit Sub

Import_Fregate_J_et_Net_J_1__et_export__Err:
MsgBox Error$
Resume Import_Fregate_J_et_Net_J_1__et_export__Exit

End Sub



Bonjour

Qu'entends-tu par "le formulaire se bloque" ???

Sinon si tu fais une impression directe, tu n'as pas à refermer l'état après
pareil pour les requête action, pas besoin de les fermer après exécution.

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"ALF" a écrit dans le message news:

bonjour a tous,

j ai construit un formulaire avec un bouton qui une fois activé declenche
l

execution de l impresion de plusieurs etats access.j ai remarqué que tout
fonctionne sauf que le formulaire se bloque et on est obligé de le fermer
puis de le reouvrir pour retrouver le formulaire actif...

j ai tout d abord construit une macro access avec comme action "ouvrir un
etat" en mode impression directe et cela pour chaque etat puis j ai
converti

cette macro en code vba que j ai affecté au bouton.
faut il rajouter la fermeture de chaque etat en code vba pour fermer la
procedure ou faut il faire autre chose??..
et d une maniere generale lorque l on ouvre aussi des requetes actions
comme

mise a jour ou ajout , faut il faire une fermeture de ces requetes en code
vba afin de sortir proprement?? MERCI DE VOTRE AIDE.

--
ALF







Avatar
ALF
bonjour raymond,

ou faut il placer l option acDialog dans la procedure stp??
Dans OpenReport les seules constantes possibles etant acViewDesign
,acViewNormal, acViewPreview....

merci.


Salut Jessy.

pour ne pas avoir de problèmes de ce genre (ça arrive), il faut lancer les
états avec l'option acDialog ce qui permet de n'avoir qu'un seul état dans
le spool.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message de
news: 42524cf1$
Bonjour

Qu'entends-tu par "le formulaire se bloque" ???

Sinon si tu fais une impression directe, tu n'as pas à refermer l'état
après
pareil pour les requête action, pas besoin de les fermer après exécution.

@+
Jessy Sempere - Access MVP








Avatar
Raymond [mvp]
sauf si ta version ne supporte pas cette option:

DoCmd.OpenReport "reportname", , , , acDialog

si tu es en 2000 ou inférieur, tu n'as pas cette option et il faudrait
mettre une ligne DoEvents entre chaque openreport, mais ça n'auras pas le
même effet.


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

bonjour raymond,

ou faut il placer l option acDialog dans la procedure stp??
Dans OpenReport les seules constantes possibles etant acViewDesign
,acViewNormal, acViewPreview....

merci.


Salut Jessy.

pour ne pas avoir de problèmes de ce genre (ça arrive), il faut lancer
les
états avec l'option acDialog ce qui permet de n'avoir qu'un seul état
dans
le spool.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message
de
news: 42524cf1$
Bonjour

Qu'entends-tu par "le formulaire se bloque" ???

Sinon si tu fais une impression directe, tu n'as pas à refermer l'état
après
pareil pour les requête action, pas besoin de les fermer après
exécution.

@+
Jessy Sempere - Access MVP










Avatar
ALF
rebonjour raymond,

j ai malheureusement access 2000 et effectivement cette version ne supporte
pas cette option car il faudrait un argument de plus.
tu me suggères dans ce cas de placer une ligne DoEvents entre chaque
OpenReport mais quelle doit etre le contenu de cette ligne??...
sinon y a t il une autre possibilite d imprimer les etats mais sans
impression directe , et dans ce cas quelle est le code??... merci



sauf si ta version ne supporte pas cette option:

DoCmd.OpenReport "reportname", , , , acDialog

si tu es en 2000 ou inférieur, tu n'as pas cette option et il faudrait
mettre une ligne DoEvents entre chaque openreport, mais ça n'auras pas le
même effet.


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

bonjour raymond,

ou faut il placer l option acDialog dans la procedure stp??
Dans OpenReport les seules constantes possibles etant acViewDesign
,acViewNormal, acViewPreview....

merci.


Salut Jessy.

pour ne pas avoir de problèmes de ce genre (ça arrive), il faut lancer
les
états avec l'option acDialog ce qui permet de n'avoir qu'un seul état
dans
le spool.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message
de
news: 42524cf1$
Bonjour

Qu'entends-tu par "le formulaire se bloque" ???

Sinon si tu fais une impression directe, tu n'as pas à refermer l'état
après
pareil pour les requête action, pas besoin de les fermer après
exécution.

@+
Jessy Sempere - Access MVP















Avatar
Raymond [mvp]
la ligne ne contient que DoEvents
c'est une instruction qui permet à access de respirer et exécuter d'autres
tâches, ce qui peut décoincer une situation. tu peux mettre une ligne après
chaque requête aussi.
l'impression par access n'est pas directe mais passe dans le spooler qui est
ensuite géré par windows qui imprimera sur l'imprimante.

il faut aussi optimiser ton code:
DoCmd.OpenTable "FREGATEJOUR", acNormal, acEdit
DoCmd.RunCommand acCmdSelectAllRecords
DoCmd.RunCommand acCmdDelete
DoCmd.Close acTable, "FREGATEJOUR"
peut être remplacé par

docmd.runsql "Delete * from FREGATEJOUR"

Après chaque import ou export mets une ligne
DoEvents

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

rebonjour raymond,

j ai malheureusement access 2000 et effectivement cette version ne
supporte
pas cette option car il faudrait un argument de plus.
tu me suggères dans ce cas de placer une ligne DoEvents entre chaque
OpenReport mais quelle doit etre le contenu de cette ligne??...
sinon y a t il une autre possibilite d imprimer les etats mais sans
impression directe , et dans ce cas quelle est le code??... merci



sauf si ta version ne supporte pas cette option:

DoCmd.OpenReport "reportname", , , , acDialog

si tu es en 2000 ou inférieur, tu n'as pas cette option et il faudrait
mettre une ligne DoEvents entre chaque openreport, mais ça n'auras pas le
même effet.


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

bonjour raymond,

ou faut il placer l option acDialog dans la procedure stp??
Dans OpenReport les seules constantes possibles etant acViewDesign
,acViewNormal, acViewPreview....

merci.


Salut Jessy.

pour ne pas avoir de problèmes de ce genre (ça arrive), il faut lancer
les
états avec l'option acDialog ce qui permet de n'avoir qu'un seul état
dans
le spool.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le
message
de
news: 42524cf1$
Bonjour

Qu'entends-tu par "le formulaire se bloque" ???

Sinon si tu fais une impression directe, tu n'as pas à refermer
l'état
après
pareil pour les requête action, pas besoin de les fermer après
exécution.

@+
Jessy Sempere - Access MVP

















Avatar
ALF
désolé Raymond,
Tu vas probablement penser que je suis penible mais apres optimisation et
rajout de lignes DoEvents,le resultat est toujours le meme a savoir quela
base de donnee est bloqué..cependant les etats s impriment mais apres le
message "traitement terminé"et avoir cliqué sur OK dans la boite de dialogue.
on dirait qu il faudrait que l impression se termine avant ce message ou peut
etre la procedure attends autre chose??..
Peut etre faudrait il rajouter dans la procedure "fermer le formulaire" puis
"ouvrir le formulaire"?? Qu en penses tu??...
a toute fin utile je te laisse la procedure rectifiee...encore merci....


Private Sub
IMPORT_FREGATE_J_ET_NET_J_1_SUR_ACCESS_ET_EXPORT_SUR_EXCEL_DblClick(Cancel As
Integer)

DoCmd.SetWarnings False
DoCmd.Echo False, "Macro en cours d'exécution"
DoCmd.RunSQL "delete*from FREGATEJOUR"
DoCmd.RunSQL "Delete*from NETJOUR"
DoCmd.TransferSpreadsheet acImport, 5, "FREGATEJOUR",
"U:CTX_RHONE_PROVENCE_CORSEfregate-net jourfregj1.xls", True, ""
DoEvents
DoCmd.TransferSpreadsheet acImport, 5, "FREGATEJOUR",
"U:CTX_RHONE_PROVENCE_CORSEfregate-net jourfregj4.xls", True, ""
DoEvents
DoCmd.TransferSpreadsheet acImport, 5, "NETJOUR",
"U:CTX_RHONE_PROVENCE_CORSEfregate-net journetj1j4", True, ""
DoEvents
DoCmd.OpenQuery "FILTRE DR", acNormal, acEdit
DoEvents
DoCmd.OpenQuery "CREATION FRAICHEUR", acNormal, acAdd
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "FREG SFRB03CO",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCFREG SFRB03CO",
True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "FREG SFRB03MA",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCFREG
SFRB03MA.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "FREG SFRB03RD",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCFREG
SFRB03RD.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "FREG AUTRES INTERLOC",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCFREG AUTRES
INTERLOC.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "NET SFRB03CO",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCNET SFRB03CO.XLS",
True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "NET SFRB03MA",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCNET SFRB03MA.XLS",
True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "NET SFRB03RD",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCNET SFRB03RD.XLS",
True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "NET AUTRES INTERLOC",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCNET AUTRES
INTERLOC.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "TOTAL FREG PAR INTERLOC JOUR",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCTOTAL FREG PAR
INTERLOC JOUR.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "TOTAL NET PAR INTERLOC JOUR",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCTOTAL NET PAR
INTERLOC JOUR.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "DOSSIERS FREGATE ABSENTS SUR LE
NET", "U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCDOSSIERS
FREGATE ABSENTS SUR LE NET.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "DOSSIERS DU NET ABSENTS SUR
FREGATE", "U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCDOSSIERS
DU NET ABSENTS SUR FREGATE.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "DOUBLONS POUR FREGATEJOUR",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCDOUBLONS POUR
FREGATEJOUR.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "DOUBLONS POUR NETJOUR",
"U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT INTERLOCDOUBLONS POUR
NETJOUR.XLS", True, ""
DoEvents
DoCmd.TransferSpreadsheet acExport, 5, "FRAICHEUR NET >100J A
RETRAITER", "U:CTX_RHONE_PROVENCE_CORSEFREGATE-NET JOURLOT
INTERLOCFRAICHEUR NET SUP 100J A RETRAITER.XLS", True, ""
DoEvents
DoCmd.OpenReport "dossiers du NET absents sur FREGATE", acViewNormal,
"", ""
DoEvents
DoCmd.OpenReport "DOSSIERS FREGATE ABSENTS SUR LE NET", acViewNormal,
"", ""
DoEvents
DoCmd.OpenReport "doublons pour FREGATEJOUR", acViewNormal, "", ""
DoEvents
DoCmd.OpenReport "doublons pour NETJOUR", acViewNormal, "", ""
DoEvents
DoCmd.OpenReport "FRAICHEUR NET >100J A RETRAITER", acViewNormal, "", ""
DoEvents
DoCmd.OpenReport "FREG AUTRES INTERLOC", acViewNormal, "", ""
DoEvents
DoCmd.OpenReport "MONTANT DIFFERENT", acViewNormal, "", ""
DoEvents
DoCmd.OpenReport "NET AUTRES INTERLOC", acViewNormal, "", ""
DoEvents
DoCmd.OpenReport "TOTAL FREG PAR INTERLOC JOUR", acViewNormal, "", ""
DoEvents
DoCmd.OpenReport "TOTAL NET PAR INTERLOC JOUR", acViewNormal, "", ""
DoEvents
Beep
Beep
Beep
Beep
MsgBox "TRAITEMENT TERMINE", vbInformation, "Importation Fregate(J) et
Net(J+1)"


Import_Fregate_J_et_Net_J_1__et_export__Exit:
Exit Sub

Import_Fregate_J_et_Net_J_1__et_export__Err:
MsgBox Error$
Resume Import_Fregate_J_et_Net_J_1__et_export__Exit

End Sub




la ligne ne contient que DoEvents
c'est une instruction qui permet à access de respirer et exécuter d'autres
tâches, ce qui peut décoincer une situation. tu peux mettre une ligne après
chaque requête aussi.
l'impression par access n'est pas directe mais passe dans le spooler qui est
ensuite géré par windows qui imprimera sur l'imprimante.

il faut aussi optimiser ton code:
DoCmd.OpenTable "FREGATEJOUR", acNormal, acEdit
DoCmd.RunCommand acCmdSelectAllRecords
DoCmd.RunCommand acCmdDelete
DoCmd.Close acTable, "FREGATEJOUR"
peut être remplacé par

docmd.runsql "Delete * from FREGATEJOUR"

Après chaque import ou export mets une ligne
DoEvents

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

rebonjour raymond,

j ai malheureusement access 2000 et effectivement cette version ne
supporte
pas cette option car il faudrait un argument de plus.
tu me suggères dans ce cas de placer une ligne DoEvents entre chaque
OpenReport mais quelle doit etre le contenu de cette ligne??...
sinon y a t il une autre possibilite d imprimer les etats mais sans
impression directe , et dans ce cas quelle est le code??... merci



sauf si ta version ne supporte pas cette option:

DoCmd.OpenReport "reportname", , , , acDialog

si tu es en 2000 ou inférieur, tu n'as pas cette option et il faudrait
mettre une ligne DoEvents entre chaque openreport, mais ça n'auras pas le
même effet.


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

bonjour raymond,

ou faut il placer l option acDialog dans la procedure stp??
Dans OpenReport les seules constantes possibles etant acViewDesign
,acViewNormal, acViewPreview....

merci.


Salut Jessy.

pour ne pas avoir de problèmes de ce genre (ça arrive), il faut lancer
les
états avec l'option acDialog ce qui permet de n'avoir qu'un seul état
dans
le spool.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le
message
de
news: 42524cf1$
Bonjour

Qu'entends-tu par "le formulaire se bloque" ???

Sinon si tu fais une impression directe, tu n'as pas à refermer
l'état
après
pareil pour les requête action, pas besoin de les fermer après
exécution.

@+
Jessy Sempere - Access MVP






















Avatar
Raymond [mvp]
tu vas faire un essai:

DoCmd.OpenReport "dossiers du NET absents sur FREGATE", acViewNormal,
"", ""
Do Until Reports.Count = 0
DoEvents
Loop
DoCmd.OpenReport "DOSSIERS FREGATE ABSENTS SUR LE NET", acViewNormal,
"", ""
Do Until Reports.Count = 0
DoEvents
Loop
etc..... etc.........

ça va attendre la fin de l'état précédent , comme si on avait un acDialog
virtuel.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

désolé Raymond,
Tu vas probablement penser que je suis penible mais apres optimisation et
rajout de lignes DoEvents,le resultat est toujours le meme a savoir quela
base de donnee est bloqué..cependant les etats s impriment mais apres le
message "traitement terminé"et avoir cliqué sur OK dans la boite de
dialogue.
on dirait qu il faudrait que l impression se termine avant ce message ou
peut
etre la procedure attends autre chose??..
Peut etre faudrait il rajouter dans la procedure "fermer le formulaire"
puis
"ouvrir le formulaire"?? Qu en penses tu??...
a toute fin utile je te laisse la procedure rectifiee...encore merci....


Avatar
ALF
essai malheureusement negatif avec Do Until...Loop.....la base de donnees se
bloque toujours malgré l impression des etats....LE CAS Semble désespéré....


tu vas faire un essai:

DoCmd.OpenReport "dossiers du NET absents sur FREGATE", acViewNormal,
"", ""
Do Until Reports.Count = 0
DoEvents
Loop
DoCmd.OpenReport "DOSSIERS FREGATE ABSENTS SUR LE NET", acViewNormal,
"", ""
Do Until Reports.Count = 0
DoEvents
Loop
etc..... etc.........

ça va attendre la fin de l'état précédent , comme si on avait un acDialog
virtuel.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

désolé Raymond,
Tu vas probablement penser que je suis penible mais apres optimisation et
rajout de lignes DoEvents,le resultat est toujours le meme a savoir quela
base de donnee est bloqué..cependant les etats s impriment mais apres le
message "traitement terminé"et avoir cliqué sur OK dans la boite de
dialogue.
on dirait qu il faudrait que l impression se termine avant ce message ou
peut
etre la procedure attends autre chose??..
Peut etre faudrait il rajouter dans la procedure "fermer le formulaire"
puis
"ouvrir le formulaire"?? Qu en penses tu??...
a toute fin utile je te laisse la procedure rectifiee...encore merci....







1 2