utilisation de la meme table par deux utilisateurs
3 réponses
Le meruvien
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un
probleme que je n'avais pas approfondis!
Ma base est en reseau, mais le probleme, si deux personnes utilise en meme
temps le meme enregistrement, ça plante!
Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche
avec le meme numéro d'affaire, il est un message lui disant que cet
enregistrement est en cours de modif, et qu'il attende!
J'ai mis une variable public:
public code as string
et ensuite sur ouverture de mon form j'ai mis:
Dim codeform As String
codeform = "fichedeproposition" & Me!affaire
If code = codeform Then
DoCmd.OpenForm "message formulaire ouvert"
DoCmd.Close acForm, "fiche de proposition"
Cancel = True
Exit Sub
End If
code = codeform
Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il
s'emblerai qu'il ne tienne pas compte de la variable "code"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Argyronet
Bonjour,
1/ Le mode multi utilisateur est possible mais la MAJ est réservée au premier. 2/ Votre variable publique n'est pas initialisée dans votre exemple... donc, ca ne peut pas marcher 3/ Vous n'arriverez pas à vos fins avec un tel code. Il faut user d'un objet Recordset, tenter d'ecrire dans la table source du formulaire avec une gestion d'erreur idoine pour provoquer l'erreur qui se traduira par : "Si vous ouvrez ce formulaire, vous ne pourrez pas mettre les données à jour !"
L'idéal serait de boucler jusqu'à ce qu'il soit possible avec un message du style : "Voulez-vous qu'Access vous prévienne dès qu'il sera possible d'accéder à ce formulaire ?" Les idées ne manque pas... -- Argy http://argyronet.developpez.com/ Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un probleme que je n'avais pas approfondis! Ma base est en reseau, mais le probleme, si deux personnes utilise en meme temps le meme enregistrement, ça plante! Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche avec le meme numéro d'affaire, il est un message lui disant que cet enregistrement est en cours de modif, et qu'il attende! J'ai mis une variable public: public code as string et ensuite sur ouverture de mon form j'ai mis: Dim codeform As String codeform = "fichedeproposition" & Me!affaire If code = codeform Then DoCmd.OpenForm "message formulaire ouvert" DoCmd.Close acForm, "fiche de proposition" Cancel = True Exit Sub End If code = codeform Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il s'emblerai qu'il ne tienne pas compte de la variable "code"
--
Roger http://le-meruvien.skynetblogs.be/
Bonjour,
1/ Le mode multi utilisateur est possible mais la MAJ est réservée au premier.
2/ Votre variable publique n'est pas initialisée dans votre exemple... donc,
ca ne peut pas marcher
3/ Vous n'arriverez pas à vos fins avec un tel code.
Il faut user d'un objet Recordset, tenter d'ecrire dans la table source du
formulaire avec une gestion d'erreur idoine pour provoquer l'erreur qui se
traduira par :
"Si vous ouvrez ce formulaire, vous ne pourrez pas mettre les données à jour
!"
L'idéal serait de boucler jusqu'à ce qu'il soit possible avec un message du
style :
"Voulez-vous qu'Access vous prévienne dès qu'il sera possible d'accéder à ce
formulaire ?"
Les idées ne manque pas...
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un
probleme que je n'avais pas approfondis!
Ma base est en reseau, mais le probleme, si deux personnes utilise en meme
temps le meme enregistrement, ça plante!
Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche
avec le meme numéro d'affaire, il est un message lui disant que cet
enregistrement est en cours de modif, et qu'il attende!
J'ai mis une variable public:
public code as string
et ensuite sur ouverture de mon form j'ai mis:
Dim codeform As String
codeform = "fichedeproposition" & Me!affaire
If code = codeform Then
DoCmd.OpenForm "message formulaire ouvert"
DoCmd.Close acForm, "fiche de proposition"
Cancel = True
Exit Sub
End If
code = codeform
Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il
s'emblerai qu'il ne tienne pas compte de la variable "code"
1/ Le mode multi utilisateur est possible mais la MAJ est réservée au premier. 2/ Votre variable publique n'est pas initialisée dans votre exemple... donc, ca ne peut pas marcher 3/ Vous n'arriverez pas à vos fins avec un tel code. Il faut user d'un objet Recordset, tenter d'ecrire dans la table source du formulaire avec une gestion d'erreur idoine pour provoquer l'erreur qui se traduira par : "Si vous ouvrez ce formulaire, vous ne pourrez pas mettre les données à jour !"
L'idéal serait de boucler jusqu'à ce qu'il soit possible avec un message du style : "Voulez-vous qu'Access vous prévienne dès qu'il sera possible d'accéder à ce formulaire ?" Les idées ne manque pas... -- Argy http://argyronet.developpez.com/ Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un probleme que je n'avais pas approfondis! Ma base est en reseau, mais le probleme, si deux personnes utilise en meme temps le meme enregistrement, ça plante! Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche avec le meme numéro d'affaire, il est un message lui disant que cet enregistrement est en cours de modif, et qu'il attende! J'ai mis une variable public: public code as string et ensuite sur ouverture de mon form j'ai mis: Dim codeform As String codeform = "fichedeproposition" & Me!affaire If code = codeform Then DoCmd.OpenForm "message formulaire ouvert" DoCmd.Close acForm, "fiche de proposition" Cancel = True Exit Sub End If code = codeform Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il s'emblerai qu'il ne tienne pas compte de la variable "code"
--
Roger http://le-meruvien.skynetblogs.be/
Euclide
Une autre possibilité: utiliser une autre table T_Maj ( nomuser, nomtable)
avant d'ouvrir l'enregistrement de la table TT avec ton login GG: - select count(*) from T_maj where nomtable=TT
si la requete renvoi 0: - insert into t_maj(nomuser, nomtable) values (GG, TT) - ouvrir la fiche - à la fin de la fiche, delete t_maj where nomuser=GG and nomtable=TT
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un probleme que je n'avais pas approfondis! Ma base est en reseau, mais le probleme, si deux personnes utilise en meme temps le meme enregistrement, ça plante! Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche avec le meme numéro d'affaire, il est un message lui disant que cet enregistrement est en cours de modif, et qu'il attende! J'ai mis une variable public: public code as string et ensuite sur ouverture de mon form j'ai mis: Dim codeform As String codeform = "fichedeproposition" & Me!affaire If code = codeform Then DoCmd.OpenForm "message formulaire ouvert" DoCmd.Close acForm, "fiche de proposition" Cancel = True Exit Sub End If code = codeform Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il s'emblerai qu'il ne tienne pas compte de la variable "code"
--
Roger http://le-meruvien.skynetblogs.be/
Une autre possibilité: utiliser une autre table T_Maj (
nomuser,
nomtable)
avant d'ouvrir l'enregistrement de la table TT avec ton login GG:
- select count(*) from T_maj where nomtable=TT
si la requete renvoi 0:
- insert into t_maj(nomuser, nomtable) values (GG, TT)
- ouvrir la fiche
- à la fin de la fiche, delete t_maj where nomuser=GG and nomtable=TT
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un
probleme que je n'avais pas approfondis!
Ma base est en reseau, mais le probleme, si deux personnes utilise en meme
temps le meme enregistrement, ça plante!
Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche
avec le meme numéro d'affaire, il est un message lui disant que cet
enregistrement est en cours de modif, et qu'il attende!
J'ai mis une variable public:
public code as string
et ensuite sur ouverture de mon form j'ai mis:
Dim codeform As String
codeform = "fichedeproposition" & Me!affaire
If code = codeform Then
DoCmd.OpenForm "message formulaire ouvert"
DoCmd.Close acForm, "fiche de proposition"
Cancel = True
Exit Sub
End If
code = codeform
Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il
s'emblerai qu'il ne tienne pas compte de la variable "code"
Une autre possibilité: utiliser une autre table T_Maj ( nomuser, nomtable)
avant d'ouvrir l'enregistrement de la table TT avec ton login GG: - select count(*) from T_maj where nomtable=TT
si la requete renvoi 0: - insert into t_maj(nomuser, nomtable) values (GG, TT) - ouvrir la fiche - à la fin de la fiche, delete t_maj where nomuser=GG and nomtable=TT
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un probleme que je n'avais pas approfondis! Ma base est en reseau, mais le probleme, si deux personnes utilise en meme temps le meme enregistrement, ça plante! Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche avec le meme numéro d'affaire, il est un message lui disant que cet enregistrement est en cours de modif, et qu'il attende! J'ai mis une variable public: public code as string et ensuite sur ouverture de mon form j'ai mis: Dim codeform As String codeform = "fichedeproposition" & Me!affaire If code = codeform Then DoCmd.OpenForm "message formulaire ouvert" DoCmd.Close acForm, "fiche de proposition" Cancel = True Exit Sub End If code = codeform Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il s'emblerai qu'il ne tienne pas compte de la variable "code"
--
Roger http://le-meruvien.skynetblogs.be/
Antoine Labusquière
Pour résoudre ce problème, tu ne dois pas passer par une variable, mais plutôt par une valeur dans un table. A l'ouverture du formulaire, tu mets dans un champ le nom de l'utilisateur qui fait la modification, par exemple, comme ça, si un autre utilisateur veut ouvrir le même enregistrement, il saura à qui s'adresser pour le libérer.
"Le meruvien" a écrit dans le message de news: 46d54d3d$0$416$
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un probleme que je n'avais pas approfondis! Ma base est en reseau, mais le probleme, si deux personnes utilise en meme temps le meme enregistrement, ça plante! Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche avec le meme numéro d'affaire, il est un message lui disant que cet enregistrement est en cours de modif, et qu'il attende! J'ai mis une variable public: public code as string et ensuite sur ouverture de mon form j'ai mis: Dim codeform As String codeform = "fichedeproposition" & Me!affaire If code = codeform Then DoCmd.OpenForm "message formulaire ouvert" DoCmd.Close acForm, "fiche de proposition" Cancel = True Exit Sub End If code = codeform Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il s'emblerai qu'il ne tienne pas compte de la variable "code"
--
Roger http://le-meruvien.skynetblogs.be/
Pour résoudre ce problème, tu ne dois pas passer par une variable, mais
plutôt par une valeur dans un table.
A l'ouverture du formulaire, tu mets dans un champ le nom de l'utilisateur
qui fait la modification, par exemple, comme ça, si un autre utilisateur
veut ouvrir le même enregistrement, il saura à qui s'adresser pour le
libérer.
"Le meruvien" <RVvdb.roger@free.fr> a écrit dans le message de news:
46d54d3d$0$416$426a34cc@news.free.fr...
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un
probleme que je n'avais pas approfondis!
Ma base est en reseau, mais le probleme, si deux personnes utilise en meme
temps le meme enregistrement, ça plante!
Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme
fiche avec le meme numéro d'affaire, il est un message lui disant que cet
enregistrement est en cours de modif, et qu'il attende!
J'ai mis une variable public:
public code as string
et ensuite sur ouverture de mon form j'ai mis:
Dim codeform As String
codeform = "fichedeproposition" & Me!affaire
If code = codeform Then
DoCmd.OpenForm "message formulaire ouvert"
DoCmd.Close acForm, "fiche de proposition"
Cancel = True
Exit Sub
End If
code = codeform
Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form,
il s'emblerai qu'il ne tienne pas compte de la variable "code"
Pour résoudre ce problème, tu ne dois pas passer par une variable, mais plutôt par une valeur dans un table. A l'ouverture du formulaire, tu mets dans un champ le nom de l'utilisateur qui fait la modification, par exemple, comme ça, si un autre utilisateur veut ouvrir le même enregistrement, il saura à qui s'adresser pour le libérer.
"Le meruvien" a écrit dans le message de news: 46d54d3d$0$416$
Bonjour a tous, apres avoir relaché un peut access, me revoila avec un probleme que je n'avais pas approfondis! Ma base est en reseau, mais le probleme, si deux personnes utilise en meme temps le meme enregistrement, ça plante! Donc je voudrai que quand le deuxieme utilisateur veut ouvrir la meme fiche avec le meme numéro d'affaire, il est un message lui disant que cet enregistrement est en cours de modif, et qu'il attende! J'ai mis une variable public: public code as string et ensuite sur ouverture de mon form j'ai mis: Dim codeform As String codeform = "fichedeproposition" & Me!affaire If code = codeform Then DoCmd.OpenForm "message formulaire ouvert" DoCmd.Close acForm, "fiche de proposition" Cancel = True Exit Sub End If code = codeform Malheureusement ça marche pas, quand le 2eme utilisateur ouvre son form, il s'emblerai qu'il ne tienne pas compte de la variable "code"