OVH Cloud OVH Cloud

pb de lock VB6 - Access 2000/XP

3 réponses
Avatar
Bertrand
Bonjour

une application VB multi utilisateur doit acceder à une DB access pour
editer des factures
chaque facture a un numero unique qui s'incremente. il ne doit pas y avoir
de trous dans la numérotation

le pb est que pour l'instant qd 2 personnes utilisent le logiciel elles
recuperent en meme temps le meme numero de facture

le dernier numero utilisé est stocké dans une table

le pgrm doit utiliser DAO 3.51 uniquement.

comment résoudre ce pb.



Merci

3 réponses

Avatar
Christophe QUEVAL
Bonjour,

Pourquoi ne pas calculer votre numéro de facture au moment de l'ajout réel
de l'enregistrement de votre base de données ?
Vous pouvez peut-être aussi résoudre ce problème à l'aide d'un numéro auto
(concaténé avec un préfixe si vous en avez d'un) qui sera donc géré par
access directement.

Christophe
"Bertrand" a écrit dans le message de
news:%
Bonjour

une application VB multi utilisateur doit acceder à une DB access pour
editer des factures
chaque facture a un numero unique qui s'incremente. il ne doit pas y avoir
de trous dans la numérotation

le pb est que pour l'instant qd 2 personnes utilisent le logiciel elles
recuperent en meme temps le meme numero de facture

le dernier numero utilisé est stocké dans une table

le pgrm doit utiliser DAO 3.51 uniquement.

comment résoudre ce pb.



Merci




Avatar
Bertrand
en fait voici la procedure réalisé

on lit le dernier numero de facture (c'est ici que le pb se pose)
on l'incremente
il y a plusieurs traitements qui sont réalisés dont une impression word
on enregistre le numero comme dernier numero

à l'origine c'est un pgrm VB5 + access 95. il faut que je le modifie un
minimum pour éliminer ce bug. il faut aussi que j'evite de toucher à la DB

je pensais peut etre mettre un temps aléatoire avant la lecture du numéro
donc

tmpalea
lecture si presence lock dans table
si rien procedure normale sinon attente et ressai




"Christophe QUEVAL" a écrit dans le
message de news:
Bonjour,

Pourquoi ne pas calculer votre numéro de facture au moment de l'ajout réel
de l'enregistrement de votre base de données ?
Vous pouvez peut-être aussi résoudre ce problème à l'aide d'un numéro auto
(concaténé avec un préfixe si vous en avez d'un) qui sera donc géré par
access directement.

Christophe
"Bertrand" a écrit dans le message de
news:%
> Bonjour
>
> une application VB multi utilisateur doit acceder à une DB access pour
> editer des factures
> chaque facture a un numero unique qui s'incremente. il ne doit pas y


avoir
> de trous dans la numérotation
>
> le pb est que pour l'instant qd 2 personnes utilisent le logiciel elles
> recuperent en meme temps le meme numero de facture
>
> le dernier numero utilisé est stocké dans une table
>
> le pgrm doit utiliser DAO 3.51 uniquement.
>
> comment résoudre ce pb.
>
>
>
> Merci
>
>




Avatar
Olivier Besson
La première des règles de gestion a appliquer est :

Ta facture doit être créee AVANT d'être imprimer : Tu imprimes une facture
non crée, tu as une coupure courant ou un problème = TU AS UNE FACTURE
ILLEGALE GENEREE.
Donc :

1 Tu récupère ton N°
2 Tu l'enregistre et tu enregistre en même temps ton nouveau dernier N° (Si
possible dans une transaction mais avec Access et bcp de trans. et bcp
d'utilisateur j'ai abandonné c'est la cata.)
3 Tu fais tes autres actions.

Si ton N° est en PK ou en UNIQUE il n'y aura pas de problème : Lorsque tu as
l'erreur de doublons interdit il suffit de re récupérer ton dernier N° et de
régénérer un nouveau N° comme ci dessus.


--

Olivier Besson
Pour m'ecrire, remplacer le <xx >de mon adresse par <com>.
(Je ne lis pas mes mails frequement)
To write me, replace <xx> part of my address by <com> (i don't read my mails
very frequently).



"Bertrand" a écrit dans le message de
news:%
en fait voici la procedure réalisé

on lit le dernier numero de facture (c'est ici que le pb se pose)
on l'incremente
il y a plusieurs traitements qui sont réalisés dont une impression word
on enregistre le numero comme dernier numero

à l'origine c'est un pgrm VB5 + access 95. il faut que je le modifie un
minimum pour éliminer ce bug. il faut aussi que j'evite de toucher à la DB

je pensais peut etre mettre un temps aléatoire avant la lecture du numéro
donc

tmpalea
lecture si presence lock dans table
si rien procedure normale sinon attente et ressai




"Christophe QUEVAL" a écrit dans


le
message de news:
> Bonjour,
>
> Pourquoi ne pas calculer votre numéro de facture au moment de l'ajout


réel
> de l'enregistrement de votre base de données ?
> Vous pouvez peut-être aussi résoudre ce problème à l'aide d'un numéro


auto
> (concaténé avec un préfixe si vous en avez d'un) qui sera donc géré par
> access directement.
>
> Christophe
> "Bertrand" a écrit dans le message de
> news:%
> > Bonjour
> >
> > une application VB multi utilisateur doit acceder à une DB access pour
> > editer des factures
> > chaque facture a un numero unique qui s'incremente. il ne doit pas y
avoir
> > de trous dans la numérotation
> >
> > le pb est que pour l'instant qd 2 personnes utilisent le logiciel


elles
> > recuperent en meme temps le meme numero de facture
> >
> > le dernier numero utilisé est stocké dans une table
> >
> > le pgrm doit utiliser DAO 3.51 uniquement.
> >
> > comment résoudre ce pb.
> >
> >
> >
> > Merci
> >
> >
>
>