OVH Cloud OVH Cloud

besoin d'un conseil

2 réponses
Avatar
natou
Bonjour,
j'ai cr=E9=E9 dans access une base de facturation qui ne sert=20
que deux jours par an. L'entreprise ou je travaille=20
organise un WE par an une vente exceptionnelle de nos=20
produits =E0 des prix tr=E8s abordables, j'installe donc 4 pc=20
que je nomme "caisses" et sous access j'ai fait un petit=20
programme de facturation, et chaque ann=E9e j'ai des=20
probl=E8mes, car vu les prix de ventes, =E7a se bouscule =E0 la=20
porte d'entr=E9e et nos caissi=E8res ne choment pas, si on=20
arr=EAte pas le pc entre deux, lors de l'envoi de la facture=20
et du duplicata sur l'imprimante le syst=E8me donne un=20
message d'erreur de m=E9moire insuffisante et lorsque l'on=20
red=E9marre je me retrouve avec une facture avec les lignes=20
doubl=E9es voires tripl=E9es, et je suis oblig=E9e d'intervenir=20
manuellement pour supprimer les lignes de la facture et de=20
la refaire, mais quand vous avez 2heures de file d'attente=20
ce n'est pas =E9vident, j'ai refais gr=E2ce =E0 votre aide en=20
vba, enti=E8rement ma base en VBA cette ann=E9e esp=E9rant que=20
=E7a ne planterais pas, mais si pour certaines machines le=20
plantage arrivait au bout de 20 factures, pour d'autres=20
50, 100 factures suivant la puissace de la machine (j'en=20
avais 2 en windows 98, et 2 en win2000pro)......j'avais=20
pens=E9 qu'avec un compactage entre deux =E7a marcherait mais=20
non idem les autres ann=E9es et en plus le compactage me=20
faisait red=E9marrer mes num=E9ros de facture =E0 "0" car=20
j'avais utilis=E9 l'incr=E9mentation automatique, donc je me=20
suis retrouv=E9e avec plusieures factures portant le m=EAme=20
num=E9ro, bon =E7a ce n'est pas trop grave, mais comment=20
=E9viter ce plantage de m=E9moire insuffisante lors de=20
l'impression, voici ce qui se passe comme =E9vennement=20
lorsque la caissi=E8re effectue son clic sur envoi de=20
facture :
Dim stDocName As String
stDocName =3D "req architempo"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName =3D "Facture"
DoCmd.OpenReport stDocName, acNormal, acEdit
stDocName =3D "Duplicata"
DoCmd.OpenReport stDocName, acNormal, acEdit
stDocName =3D "Req archivage"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName =3D "req supp corps facture"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName =3D "req supp ent=EAte facture"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName =3D "supparchitempo"
DoCmd.OpenQuery stDocName, acNormal, acEdit
DoCmd.OpenForm "formouverture"
DoCmd.Close acForm, "ent=EAteformulaire"
merci si vous avez une id=E9e
NATOU

2 réponses

Avatar
Raymond [mvp]
Bonjour.

le seul et unique conseil que je te donnerai est de lancer tes impressions
comme ceci:
DoCmd.OpenReport stDocName, acNormal, , , acDialog
au lieu de
DoCmd.OpenReport stDocName, acNormal, acEdit
Que veut dire acEdit ?

Sinon, et si tu n'as pas le temps d'attendre, éventuellement, place un
doEvents entre chaque ligne.

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


"natou" a écrit dans le message de
news:182a001c41af1$3906e450$
Bonjour,
j'ai créé dans access une base de facturation qui ne sert
que deux jours par an. L'entreprise ou je travaille
organise un WE par an une vente exceptionnelle de nos
produits à des prix très abordables, j'installe donc 4 pc
que je nomme "caisses" et sous access j'ai fait un petit
programme de facturation, et chaque année j'ai des
problèmes, car vu les prix de ventes, ça se bouscule à la
porte d'entrée et nos caissières ne choment pas, si on
arrête pas le pc entre deux, lors de l'envoi de la facture
et du duplicata sur l'imprimante le système donne un
message d'erreur de mémoire insuffisante et lorsque l'on
redémarre je me retrouve avec une facture avec les lignes
doublées voires triplées, et je suis obligée d'intervenir
manuellement pour supprimer les lignes de la facture et de
la refaire, mais quand vous avez 2heures de file d'attente
ce n'est pas évident, j'ai refais grâce à votre aide en
vba, entièrement ma base en VBA cette année espérant que
ça ne planterais pas, mais si pour certaines machines le
plantage arrivait au bout de 20 factures, pour d'autres
50, 100 factures suivant la puissace de la machine (j'en
avais 2 en windows 98, et 2 en win2000pro)......j'avais
pensé qu'avec un compactage entre deux ça marcherait mais
non idem les autres années et en plus le compactage me
faisait redémarrer mes numéros de facture à "0" car
j'avais utilisé l'incrémentation automatique, donc je me
suis retrouvée avec plusieures factures portant le même
numéro, bon ça ce n'est pas trop grave, mais comment
éviter ce plantage de mémoire insuffisante lors de
l'impression, voici ce qui se passe comme évennement
lorsque la caissière effectue son clic sur envoi de
facture :
Dim stDocName As String
stDocName = "req architempo"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName = "Facture"
DoCmd.OpenReport stDocName, acNormal, acEdit
stDocName = "Duplicata"
DoCmd.OpenReport stDocName, acNormal, acEdit
stDocName = "Req archivage"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName = "req supp corps facture"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName = "req supp entête facture"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName = "supparchitempo"
DoCmd.OpenQuery stDocName, acNormal, acEdit
DoCmd.OpenForm "formouverture"
DoCmd.Close acForm, "entêteformulaire"
merci si vous avez une idée
NATOU
Avatar
natou
Merci Raymond, j'ignore ce que veut dire "acEdit" j'ai
recopié bêtement je l'avoue cette ligne par contre je vais
modifier et faire des tests car je dois dire que samedi
matin cela m'a posé bien des soucis et comme les personnes
qui éditaient les factures ne connaissent pas access je
devais rester en permanence à proximité j'espère que cela
va règler mon pb j'ai un an pour voir ça MERCI
-----Message d'origine-----
Bonjour.

le seul et unique conseil que je te donnerai est de
lancer tes impressions

comme ceci:
DoCmd.OpenReport stDocName, acNormal, , , acDialog
au lieu de
DoCmd.OpenReport stDocName, acNormal, acEdit
Que veut dire acEdit ?

Sinon, et si tu n'as pas le temps d'attendre,
éventuellement, place un

doEvents entre chaque ligne.

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


"natou" a écrit
dans le message de

news:182a001c41af1$3906e450$
Bonjour,
j'ai créé dans access une base de facturation qui ne sert
que deux jours par an. L'entreprise ou je travaille
organise un WE par an une vente exceptionnelle de nos
produits à des prix très abordables, j'installe donc 4 pc
que je nomme "caisses" et sous access j'ai fait un petit
programme de facturation, et chaque année j'ai des
problèmes, car vu les prix de ventes, ça se bouscule à la
porte d'entrée et nos caissières ne choment pas, si on
arrête pas le pc entre deux, lors de l'envoi de la facture
et du duplicata sur l'imprimante le système donne un
message d'erreur de mémoire insuffisante et lorsque l'on
redémarre je me retrouve avec une facture avec les lignes
doublées voires triplées, et je suis obligée d'intervenir
manuellement pour supprimer les lignes de la facture et de
la refaire, mais quand vous avez 2heures de file d'attente
ce n'est pas évident, j'ai refais grâce à votre aide en
vba, entièrement ma base en VBA cette année espérant que
ça ne planterais pas, mais si pour certaines machines le
plantage arrivait au bout de 20 factures, pour d'autres
50, 100 factures suivant la puissace de la machine (j'en
avais 2 en windows 98, et 2 en win2000pro)......j'avais
pensé qu'avec un compactage entre deux ça marcherait mais
non idem les autres années et en plus le compactage me
faisait redémarrer mes numéros de facture à "0" car
j'avais utilisé l'incrémentation automatique, donc je me
suis retrouvée avec plusieures factures portant le même
numéro, bon ça ce n'est pas trop grave, mais comment
éviter ce plantage de mémoire insuffisante lors de
l'impression, voici ce qui se passe comme évennement
lorsque la caissière effectue son clic sur envoi de
facture :
Dim stDocName As String
stDocName = "req architempo"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName = "Facture"
DoCmd.OpenReport stDocName, acNormal, acEdit
stDocName = "Duplicata"
DoCmd.OpenReport stDocName, acNormal, acEdit
stDocName = "Req archivage"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName = "req supp corps facture"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName = "req supp entête facture"
DoCmd.OpenQuery stDocName, acNormal, acEdit
stDocName = "supparchitempo"
DoCmd.OpenQuery stDocName, acNormal, acEdit
DoCmd.OpenForm "formouverture"
DoCmd.Close acForm, "entêteformulaire"
merci si vous avez une idée
NATOU


.