Access 2003
J'ai un formulaire principal qui contient 2 zones de liste déroulante
liées. Apres le choix effectuée dans la seconde zone de liste, le sous
formulaire affiche les données correspondantes.
L'accès à ce formulaire s'effectue après avoir saisi un nom d'utilisateur et
un mot de passe dans un formulaire parent.
En fonction de l'identifiant de l'utilisateur, je souhaite que le sous
formulaire puisse être en lecture seule ou pas.
En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous
formulaire à "Instantané" selon l'identifiant de l'utilisateur.
Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de
syntaxe, ou bien je n'écris pas la commande au bon moment...
Si quelqu'un peut m'aider sur ce coup !
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
jero
Salut, Vas voir du côté de AllowEdits. Ex : If IdUtilisateur="123" then Forms!MachinTruc.AllowEdits=True else Forms!MachinTruc.AllowEditsúlse EndIf Autre : If IdUtilisateur="123" then docmd.Openform "MachinTruc",,,,acFormEdit else docmd.Openform "MachinTruc",,,,acFormReadOnly endif A+
"dsf34" a écrit dans le message de news:
Bonjour à Tous
Access 2003 J'ai un formulaire principal qui contient 2 zones de liste déroulante liées. Apres le choix effectuée dans la seconde zone de liste, le sous formulaire affiche les données correspondantes. L'accès à ce formulaire s'effectue après avoir saisi un nom d'utilisateur et un mot de passe dans un formulaire parent. En fonction de l'identifiant de l'utilisateur, je souhaite que le sous formulaire puisse être en lecture seule ou pas. En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous formulaire à "Instantané" selon l'identifiant de l'utilisateur. Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de syntaxe, ou bien je n'écris pas la commande au bon moment... Si quelqu'un peut m'aider sur ce coup !
Merci Amicalement Didier
Salut,
Vas voir du côté de AllowEdits.
Ex :
If IdUtilisateur="123" then
Forms!MachinTruc.AllowEdits=True
else
Forms!MachinTruc.AllowEditsúlse
EndIf
Autre :
If IdUtilisateur="123" then
docmd.Openform "MachinTruc",,,,acFormEdit
else
docmd.Openform "MachinTruc",,,,acFormReadOnly
endif
A+
"dsf34" <dsf34@discussions.microsoft.com> a écrit dans le message de news:
07B68CF6-358D-433C-9BE2-F59C627E9BDF@microsoft.com...
Bonjour à Tous
Access 2003
J'ai un formulaire principal qui contient 2 zones de liste déroulante
liées. Apres le choix effectuée dans la seconde zone de liste, le sous
formulaire affiche les données correspondantes.
L'accès à ce formulaire s'effectue après avoir saisi un nom d'utilisateur
et
un mot de passe dans un formulaire parent.
En fonction de l'identifiant de l'utilisateur, je souhaite que le sous
formulaire puisse être en lecture seule ou pas.
En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous
formulaire à "Instantané" selon l'identifiant de l'utilisateur.
Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de
syntaxe, ou bien je n'écris pas la commande au bon moment...
Si quelqu'un peut m'aider sur ce coup !
Salut, Vas voir du côté de AllowEdits. Ex : If IdUtilisateur="123" then Forms!MachinTruc.AllowEdits=True else Forms!MachinTruc.AllowEditsúlse EndIf Autre : If IdUtilisateur="123" then docmd.Openform "MachinTruc",,,,acFormEdit else docmd.Openform "MachinTruc",,,,acFormReadOnly endif A+
"dsf34" a écrit dans le message de news:
Bonjour à Tous
Access 2003 J'ai un formulaire principal qui contient 2 zones de liste déroulante liées. Apres le choix effectuée dans la seconde zone de liste, le sous formulaire affiche les données correspondantes. L'accès à ce formulaire s'effectue après avoir saisi un nom d'utilisateur et un mot de passe dans un formulaire parent. En fonction de l'identifiant de l'utilisateur, je souhaite que le sous formulaire puisse être en lecture seule ou pas. En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous formulaire à "Instantané" selon l'identifiant de l'utilisateur. Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de syntaxe, ou bien je n'écris pas la commande au bon moment... Si quelqu'un peut m'aider sur ce coup !
Merci Amicalement Didier
dsf34
Bonjour Jero,
Merci pour cette solution. Malheureusement, cela ne fonctionne pas comme je le souhaite. Le fait de mettre le formulaire en lecture seule, m'interdit l'utilisation des listes déroulantes, et donc le contenu du sous formulaire ne s'affiche pas. Il faut donc que le formulaire soit en mode normal, et le sous formulaire en lecture seule, selon le code d'accès saisi par l'utilisateur ! C'est pour cela que j'essaie d'utiliser la propriété "Type de Recordset" en mode instantané. As tu une autre piste à me proposer ? voila ce que j'écris actuellement ----------------------------- DoCmd.OpenForm ("F_Planning") Forms![F_Planning]!SF_Planning.SourceObject = "SF_Planning" Forms![F_Planning]![SF_Planning].Form.RecordSource = "R_Planning" Forms![F_Planning]![SF_Planning].Form.RecordsetType = 2 ------------------------------
Merci à tous amicalement Didier
"jero" wrote:
Salut, Vas voir du côté de AllowEdits. Ex : If IdUtilisateur="123" then Forms!MachinTruc.AllowEdits=True else Forms!MachinTruc.AllowEditsúlse EndIf Autre : If IdUtilisateur="123" then docmd.Openform "MachinTruc",,,,acFormEdit else docmd.Openform "MachinTruc",,,,acFormReadOnly endif A+
"dsf34" a écrit dans le message de news:
> Bonjour à Tous > > Access 2003 > J'ai un formulaire principal qui contient 2 zones de liste déroulante > liées. Apres le choix effectuée dans la seconde zone de liste, le sous > formulaire affiche les données correspondantes. > L'accès à ce formulaire s'effectue après avoir saisi un nom d'utilisateur > et > un mot de passe dans un formulaire parent. > En fonction de l'identifiant de l'utilisateur, je souhaite que le sous > formulaire puisse être en lecture seule ou pas. > En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous > formulaire à "Instantané" selon l'identifiant de l'utilisateur. > Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de > syntaxe, ou bien je n'écris pas la commande au bon moment... > Si quelqu'un peut m'aider sur ce coup ! > > Merci > Amicalement > Didier
.
Bonjour Jero,
Merci pour cette solution. Malheureusement, cela ne fonctionne pas comme je
le souhaite. Le fait de mettre le formulaire en lecture seule, m'interdit
l'utilisation des listes déroulantes, et donc le contenu du sous formulaire
ne s'affiche pas.
Il faut donc que le formulaire soit en mode normal, et le sous formulaire en
lecture seule, selon le code d'accès saisi par l'utilisateur !
C'est pour cela que j'essaie d'utiliser la propriété "Type de Recordset" en
mode instantané.
As tu une autre piste à me proposer ?
voila ce que j'écris actuellement
-----------------------------
DoCmd.OpenForm ("F_Planning")
Forms![F_Planning]!SF_Planning.SourceObject = "SF_Planning"
Forms![F_Planning]![SF_Planning].Form.RecordSource = "R_Planning"
Forms![F_Planning]![SF_Planning].Form.RecordsetType = 2
------------------------------
Merci à tous
amicalement
Didier
"jero" wrote:
Salut,
Vas voir du côté de AllowEdits.
Ex :
If IdUtilisateur="123" then
Forms!MachinTruc.AllowEdits=True
else
Forms!MachinTruc.AllowEditsúlse
EndIf
Autre :
If IdUtilisateur="123" then
docmd.Openform "MachinTruc",,,,acFormEdit
else
docmd.Openform "MachinTruc",,,,acFormReadOnly
endif
A+
"dsf34" <dsf34@discussions.microsoft.com> a écrit dans le message de news:
07B68CF6-358D-433C-9BE2-F59C627E9BDF@microsoft.com...
> Bonjour à Tous
>
> Access 2003
> J'ai un formulaire principal qui contient 2 zones de liste déroulante
> liées. Apres le choix effectuée dans la seconde zone de liste, le sous
> formulaire affiche les données correspondantes.
> L'accès à ce formulaire s'effectue après avoir saisi un nom d'utilisateur
> et
> un mot de passe dans un formulaire parent.
> En fonction de l'identifiant de l'utilisateur, je souhaite que le sous
> formulaire puisse être en lecture seule ou pas.
> En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous
> formulaire à "Instantané" selon l'identifiant de l'utilisateur.
> Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de
> syntaxe, ou bien je n'écris pas la commande au bon moment...
> Si quelqu'un peut m'aider sur ce coup !
>
> Merci
> Amicalement
> Didier
Merci pour cette solution. Malheureusement, cela ne fonctionne pas comme je le souhaite. Le fait de mettre le formulaire en lecture seule, m'interdit l'utilisation des listes déroulantes, et donc le contenu du sous formulaire ne s'affiche pas. Il faut donc que le formulaire soit en mode normal, et le sous formulaire en lecture seule, selon le code d'accès saisi par l'utilisateur ! C'est pour cela que j'essaie d'utiliser la propriété "Type de Recordset" en mode instantané. As tu une autre piste à me proposer ? voila ce que j'écris actuellement ----------------------------- DoCmd.OpenForm ("F_Planning") Forms![F_Planning]!SF_Planning.SourceObject = "SF_Planning" Forms![F_Planning]![SF_Planning].Form.RecordSource = "R_Planning" Forms![F_Planning]![SF_Planning].Form.RecordsetType = 2 ------------------------------
Merci à tous amicalement Didier
"jero" wrote:
Salut, Vas voir du côté de AllowEdits. Ex : If IdUtilisateur="123" then Forms!MachinTruc.AllowEdits=True else Forms!MachinTruc.AllowEditsúlse EndIf Autre : If IdUtilisateur="123" then docmd.Openform "MachinTruc",,,,acFormEdit else docmd.Openform "MachinTruc",,,,acFormReadOnly endif A+
"dsf34" a écrit dans le message de news:
> Bonjour à Tous > > Access 2003 > J'ai un formulaire principal qui contient 2 zones de liste déroulante > liées. Apres le choix effectuée dans la seconde zone de liste, le sous > formulaire affiche les données correspondantes. > L'accès à ce formulaire s'effectue après avoir saisi un nom d'utilisateur > et > un mot de passe dans un formulaire parent. > En fonction de l'identifiant de l'utilisateur, je souhaite que le sous > formulaire puisse être en lecture seule ou pas. > En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous > formulaire à "Instantané" selon l'identifiant de l'utilisateur. > Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de > syntaxe, ou bien je n'écris pas la commande au bon moment... > Si quelqu'un peut m'aider sur ce coup ! > > Merci > Amicalement > Didier
.
jero
Salut, Un exemple avec une liste déroulante (mon form. est en lecture seule - pour certains utilisateurs) Private Sub lstRechercheVille_AfterUpdate() 'événement "Après mise à jour" DoCmd.GoToControl "tIdVille" DoCmd.FindRecord lstRechercheVille, acEntire, False, , False, acCurrent, True End Sub
Private Sub lstRechercheVille_Enter() 'événement "Entrée" Me.AllowEdits = True End Sub
Private Sub lstRechercheVille_Exit(Cancel As Integer) 'événement "Sortie" Me.AllowEdits = False End Sub Dans la mesure où l'ordre des événements est : Enter => AfterUpdate => Exit, il n'y a pas de pb. On peut probablement (même certainement) procéder autrement, mais j'utilise cette méthode depuis... la nuit des temps ;>) et ça marche... A+ "dsf34" a écrit dans le message de news:
Bonjour Jero,
Merci pour cette solution. Malheureusement, cela ne fonctionne pas comme je le souhaite. Le fait de mettre le formulaire en lecture seule, m'interdit l'utilisation des listes déroulantes, et donc le contenu du sous formulaire ne s'affiche pas. Il faut donc que le formulaire soit en mode normal, et le sous formulaire en lecture seule, selon le code d'accès saisi par l'utilisateur ! C'est pour cela que j'essaie d'utiliser la propriété "Type de Recordset" en mode instantané. As tu une autre piste à me proposer ? voila ce que j'écris actuellement ----------------------------- DoCmd.OpenForm ("F_Planning") Forms![F_Planning]!SF_Planning.SourceObject = "SF_Planning" Forms![F_Planning]![SF_Planning].Form.RecordSource = "R_Planning" Forms![F_Planning]![SF_Planning].Form.RecordsetType = 2 ------------------------------
Merci à tous amicalement Didier
"jero" wrote:
Salut, Vas voir du côté de AllowEdits. Ex : If IdUtilisateur="123" then Forms!MachinTruc.AllowEdits=True else Forms!MachinTruc.AllowEditsúlse EndIf Autre : If IdUtilisateur="123" then docmd.Openform "MachinTruc",,,,acFormEdit else docmd.Openform "MachinTruc",,,,acFormReadOnly endif A+
"dsf34" a écrit dans le message de news:
> Bonjour à Tous > > Access 2003 > J'ai un formulaire principal qui contient 2 zones de liste déroulante > liées. Apres le choix effectuée dans la seconde zone de liste, le sous > formulaire affiche les données correspondantes. > L'accès à ce formulaire s'effectue après avoir saisi un nom > d'utilisateur > et > un mot de passe dans un formulaire parent. > En fonction de l'identifiant de l'utilisateur, je souhaite que le sous > formulaire puisse être en lecture seule ou pas. > En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous > formulaire à "Instantané" selon l'identifiant de l'utilisateur. > Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de > syntaxe, ou bien je n'écris pas la commande au bon moment... > Si quelqu'un peut m'aider sur ce coup ! > > Merci > Amicalement > Didier
.
Salut,
Un exemple avec une liste déroulante (mon form. est en lecture seule - pour
certains utilisateurs)
Private Sub lstRechercheVille_AfterUpdate()
'événement "Après mise à jour"
DoCmd.GoToControl "tIdVille"
DoCmd.FindRecord lstRechercheVille, acEntire, False, , False, acCurrent,
True
End Sub
Private Sub lstRechercheVille_Enter()
'événement "Entrée"
Me.AllowEdits = True
End Sub
Private Sub lstRechercheVille_Exit(Cancel As Integer)
'événement "Sortie"
Me.AllowEdits = False
End Sub
Dans la mesure où l'ordre des événements est : Enter => AfterUpdate => Exit,
il n'y a pas de pb.
On peut probablement (même certainement) procéder autrement, mais j'utilise
cette méthode depuis... la nuit des temps ;>) et ça marche...
A+
"dsf34" <dsf34@discussions.microsoft.com> a écrit dans le message de news:
76108A15-B065-4794-8426-43669FDD6EAF@microsoft.com...
Bonjour Jero,
Merci pour cette solution. Malheureusement, cela ne fonctionne pas comme
je
le souhaite. Le fait de mettre le formulaire en lecture seule, m'interdit
l'utilisation des listes déroulantes, et donc le contenu du sous
formulaire
ne s'affiche pas.
Il faut donc que le formulaire soit en mode normal, et le sous formulaire
en
lecture seule, selon le code d'accès saisi par l'utilisateur !
C'est pour cela que j'essaie d'utiliser la propriété "Type de Recordset"
en
mode instantané.
As tu une autre piste à me proposer ?
voila ce que j'écris actuellement
-----------------------------
DoCmd.OpenForm ("F_Planning")
Forms![F_Planning]!SF_Planning.SourceObject = "SF_Planning"
Forms![F_Planning]![SF_Planning].Form.RecordSource = "R_Planning"
Forms![F_Planning]![SF_Planning].Form.RecordsetType = 2
------------------------------
Merci à tous
amicalement
Didier
"jero" wrote:
Salut,
Vas voir du côté de AllowEdits.
Ex :
If IdUtilisateur="123" then
Forms!MachinTruc.AllowEdits=True
else
Forms!MachinTruc.AllowEditsúlse
EndIf
Autre :
If IdUtilisateur="123" then
docmd.Openform "MachinTruc",,,,acFormEdit
else
docmd.Openform "MachinTruc",,,,acFormReadOnly
endif
A+
"dsf34" <dsf34@discussions.microsoft.com> a écrit dans le message de
news:
07B68CF6-358D-433C-9BE2-F59C627E9BDF@microsoft.com...
> Bonjour à Tous
>
> Access 2003
> J'ai un formulaire principal qui contient 2 zones de liste déroulante
> liées. Apres le choix effectuée dans la seconde zone de liste, le sous
> formulaire affiche les données correspondantes.
> L'accès à ce formulaire s'effectue après avoir saisi un nom
> d'utilisateur
> et
> un mot de passe dans un formulaire parent.
> En fonction de l'identifiant de l'utilisateur, je souhaite que le sous
> formulaire puisse être en lecture seule ou pas.
> En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous
> formulaire à "Instantané" selon l'identifiant de l'utilisateur.
> Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de
> syntaxe, ou bien je n'écris pas la commande au bon moment...
> Si quelqu'un peut m'aider sur ce coup !
>
> Merci
> Amicalement
> Didier
Salut, Un exemple avec une liste déroulante (mon form. est en lecture seule - pour certains utilisateurs) Private Sub lstRechercheVille_AfterUpdate() 'événement "Après mise à jour" DoCmd.GoToControl "tIdVille" DoCmd.FindRecord lstRechercheVille, acEntire, False, , False, acCurrent, True End Sub
Private Sub lstRechercheVille_Enter() 'événement "Entrée" Me.AllowEdits = True End Sub
Private Sub lstRechercheVille_Exit(Cancel As Integer) 'événement "Sortie" Me.AllowEdits = False End Sub Dans la mesure où l'ordre des événements est : Enter => AfterUpdate => Exit, il n'y a pas de pb. On peut probablement (même certainement) procéder autrement, mais j'utilise cette méthode depuis... la nuit des temps ;>) et ça marche... A+ "dsf34" a écrit dans le message de news:
Bonjour Jero,
Merci pour cette solution. Malheureusement, cela ne fonctionne pas comme je le souhaite. Le fait de mettre le formulaire en lecture seule, m'interdit l'utilisation des listes déroulantes, et donc le contenu du sous formulaire ne s'affiche pas. Il faut donc que le formulaire soit en mode normal, et le sous formulaire en lecture seule, selon le code d'accès saisi par l'utilisateur ! C'est pour cela que j'essaie d'utiliser la propriété "Type de Recordset" en mode instantané. As tu une autre piste à me proposer ? voila ce que j'écris actuellement ----------------------------- DoCmd.OpenForm ("F_Planning") Forms![F_Planning]!SF_Planning.SourceObject = "SF_Planning" Forms![F_Planning]![SF_Planning].Form.RecordSource = "R_Planning" Forms![F_Planning]![SF_Planning].Form.RecordsetType = 2 ------------------------------
Merci à tous amicalement Didier
"jero" wrote:
Salut, Vas voir du côté de AllowEdits. Ex : If IdUtilisateur="123" then Forms!MachinTruc.AllowEdits=True else Forms!MachinTruc.AllowEditsúlse EndIf Autre : If IdUtilisateur="123" then docmd.Openform "MachinTruc",,,,acFormEdit else docmd.Openform "MachinTruc",,,,acFormReadOnly endif A+
"dsf34" a écrit dans le message de news:
> Bonjour à Tous > > Access 2003 > J'ai un formulaire principal qui contient 2 zones de liste déroulante > liées. Apres le choix effectuée dans la seconde zone de liste, le sous > formulaire affiche les données correspondantes. > L'accès à ce formulaire s'effectue après avoir saisi un nom > d'utilisateur > et > un mot de passe dans un formulaire parent. > En fonction de l'identifiant de l'utilisateur, je souhaite que le sous > formulaire puisse être en lecture seule ou pas. > En VBA, j'essaye de mettre la propriété "Type de Recordet" du sous > formulaire à "Instantané" selon l'identifiant de l'utilisateur. > Cependant, je n'y arrive pas. Je pense que je dois faire une erreur de > syntaxe, ou bien je n'écris pas la commande au bon moment... > Si quelqu'un peut m'aider sur ce coup ! > > Merci > Amicalement > Didier
.
dsf34
Bonjour Jero,
J'ai testé ta solution, et ça marche très bien comme ça !
Merci beaucoup A+ Didier
"jero" wrote:
Salut, Un exemple avec une liste déroulante (mon form. est en lecture seule - pour certains utilisateurs) Private Sub lstRechercheVille_AfterUpdate() 'événement "Après mise à jour" DoCmd.GoToControl "tIdVille" DoCmd.FindRecord lstRechercheVille, acEntire, False, , False, acCurrent, True End Sub
Private Sub lstRechercheVille_Enter() 'événement "Entrée" Me.AllowEdits = True End Sub
Private Sub lstRechercheVille_Exit(Cancel As Integer) 'événement "Sortie" Me.AllowEdits = False End Sub Dans la mesure où l'ordre des événements est : Enter => AfterUpdate => Exit, il n'y a pas de pb. On peut probablement (même certainement) procéder autrement, mais j'utilise cette méthode depuis... la nuit des temps ;>) et ça marche... A+
Bonjour Jero,
J'ai testé ta solution, et ça marche très bien comme ça !
Merci beaucoup
A+
Didier
"jero" wrote:
Salut,
Un exemple avec une liste déroulante (mon form. est en lecture seule - pour
certains utilisateurs)
Private Sub lstRechercheVille_AfterUpdate()
'événement "Après mise à jour"
DoCmd.GoToControl "tIdVille"
DoCmd.FindRecord lstRechercheVille, acEntire, False, , False, acCurrent,
True
End Sub
Private Sub lstRechercheVille_Enter()
'événement "Entrée"
Me.AllowEdits = True
End Sub
Private Sub lstRechercheVille_Exit(Cancel As Integer)
'événement "Sortie"
Me.AllowEdits = False
End Sub
Dans la mesure où l'ordre des événements est : Enter => AfterUpdate => Exit,
il n'y a pas de pb.
On peut probablement (même certainement) procéder autrement, mais j'utilise
cette méthode depuis... la nuit des temps ;>) et ça marche...
A+
J'ai testé ta solution, et ça marche très bien comme ça !
Merci beaucoup A+ Didier
"jero" wrote:
Salut, Un exemple avec une liste déroulante (mon form. est en lecture seule - pour certains utilisateurs) Private Sub lstRechercheVille_AfterUpdate() 'événement "Après mise à jour" DoCmd.GoToControl "tIdVille" DoCmd.FindRecord lstRechercheVille, acEntire, False, , False, acCurrent, True End Sub
Private Sub lstRechercheVille_Enter() 'événement "Entrée" Me.AllowEdits = True End Sub
Private Sub lstRechercheVille_Exit(Cancel As Integer) 'événement "Sortie" Me.AllowEdits = False End Sub Dans la mesure où l'ordre des événements est : Enter => AfterUpdate => Exit, il n'y a pas de pb. On peut probablement (même certainement) procéder autrement, mais j'utilise cette méthode depuis... la nuit des temps ;>) et ça marche... A+