J'aurais besoins d'un conseil pour simplifier un code VBA=20
g=E9rant la gestion automatique d'une barre de menu au=20
regard des droits de l'utilisateur qui se connecte.
j'ai une table qui s'appel gestion_menu qui contien les=20
ID des noms de menu.
Dans la barre de munu, j'ai 8 titres de menu plus quittez.
Malheureusement, le code que j'ai d=E9velopp=E9 m'oblige =E0 le=20
dupliquer 8 fois en changeant le ID de [categorie_menu]
dans la requ=EAte select et le=20
tag:"GCP" pour le ID 1
tag:"GMC" pour le ID 2
dans le Set cbpTools
ect ......
J'ai essay=E9 plusieurs possibilit=E9s mais ne trouve pas.=20
Merci d'avance de vos conseils pr=E9cieux.
Voici le code complet pour un titre de menu
Dim cb As CommandBar, cbpTools As CommandBarPopup
Dim cbTool As CommandBar, cbbNew As CommandBarButton
Dim snpTools As Recordset
Dim intTotalCurrent As Integer, intCurrControl As=20
Integer
=20
'-- Chercher les outils requis par le mode=20
d'affichage
Set snpTools =3D CurrentDb.OpenRecordset _
("Select * from gestion_menu Where=20
[categorie_menu] =3D 1 AND idn_utilisateur =3D " & Me!
ltutilisateur)
'-- '-- Prendre la barre d'outils n=E9cessaire
Set cb =3D CommandBars!gestion_bar_menu
'-- Trouver le menu contextuel Outils et indiquer la
'-- barre de commandes qu'il repr=E9sente
Set cbpTools =3D cb.FindControl(Type:=3DmsoControlPopup,=20
Tag:=3D"GCP")
Set cbTool =3D cbpTools.CommandBar
'-- Supprimer les outils actuellement dans le menu
intTotalCurrent =3D cbTool.Controls.Count
For intCurrControl =3D 1 To intTotalCurrent
cbTool.Controls(1).Delete
Next
'-- Ajouter les nouveaux choix du menu depuis le menu=20
Outils
Do Until snpTools.EOF
Set cbbNew =3D cbTool.Controls.Add
(Type:=3DmsoControlButton)
With cbbNew
.Caption =3D snpTools!nom_menu
.TooltipText =3D snpTools!legende
.OnAction =3D snpTools!fonction_ouverture
.FaceID =3D snpTools!idn_icone
End With
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
Jessy SEMPERE
Bonjour
Il te suffit de rajouter un argument à ta fonction... Ca pourrait donner ça : ******************************************************* Function cmdBar(intCat As Integer, strTag As String)
Dim cb As CommandBar, cbpTools As CommandBarPopup Dim cbTool As CommandBar, cbbNew As CommandBarButton Dim snpTools As Recordset Dim intTotalCurrent As Integer, intCurrControl As Integer
'-- Chercher les outils requis par le mode d 'affichage Set snpTools = CurrentDb.OpenRecordset("Select * from " _ & "gestion_menu Where [categorie_menu] = " & intCat & " And idn_utilisateur = " & Me!ltutilisateur)
'-- '-- Prendre la barre d'outils nécessaire Set cb = CommandBars!gestion_bar_menu
'-- Trouver le menu contextuel Outils et indiquer la '-- barre de commandes qu'il représente Set cbpTools = cb.FindControl(Type:=msoControlPopup, tag:=strTag) Set cbTool = cbpTools.CommandBar
'-- Supprimer les outils actuellement dans le menu intTotalCurrent = cbTool.Controls.Count For intCurrControl = 1 To intTotalCurrent cbTool.Controls(1).Delete Next
'-- Ajouter les nouveaux choix du menu depuis le menu Outils Do Until snpTools.EOF Set cbbNew = cbTool.Controls.Add(Type:=msoControlButton) With cbbNew .Caption = snpTools!nom_menu .TooltipText = snpTools!legende .OnAction = snpTools!fonction_ouverture .FaceId = snpTools!idn_icone End With snpTools.MoveNext Loop
snpTools.Close: Set snpTools = Nothing End Function *******************************************************
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "turbo design" a écrit dans le message news: 14b5401c3c3ad$5472bcf0$ Bonjour,
J'aurais besoins d'un conseil pour simplifier un code VBA gérant la gestion automatique d'une barre de menu au regard des droits de l'utilisateur qui se connecte.
j'ai une table qui s'appel gestion_menu qui contien les ID des noms de menu.
Dans la barre de munu, j'ai 8 titres de menu plus quittez.
Malheureusement, le code que j'ai développé m'oblige à le dupliquer 8 fois en changeant le ID de [categorie_menu] dans la requête select et le tag:"GCP" pour le ID 1 tag:"GMC" pour le ID 2 dans le Set cbpTools ect ......
Bonjour
Il te suffit de rajouter un argument à ta fonction...
Ca pourrait donner ça :
*******************************************************
Function cmdBar(intCat As Integer, strTag As String)
Dim cb As CommandBar, cbpTools As CommandBarPopup
Dim cbTool As CommandBar, cbbNew As CommandBarButton
Dim snpTools As Recordset
Dim intTotalCurrent As Integer, intCurrControl As Integer
'-- Chercher les outils requis par le mode d 'affichage
Set snpTools = CurrentDb.OpenRecordset("Select * from " _
& "gestion_menu Where [categorie_menu] = " & intCat & " And
idn_utilisateur = " & Me!ltutilisateur)
'-- '-- Prendre la barre d'outils nécessaire
Set cb = CommandBars!gestion_bar_menu
'-- Trouver le menu contextuel Outils et indiquer la
'-- barre de commandes qu'il représente
Set cbpTools = cb.FindControl(Type:=msoControlPopup, tag:=strTag)
Set cbTool = cbpTools.CommandBar
'-- Supprimer les outils actuellement dans le menu
intTotalCurrent = cbTool.Controls.Count
For intCurrControl = 1 To intTotalCurrent
cbTool.Controls(1).Delete
Next
'-- Ajouter les nouveaux choix du menu depuis le menu Outils
Do Until snpTools.EOF
Set cbbNew = cbTool.Controls.Add(Type:=msoControlButton)
With cbbNew
.Caption = snpTools!nom_menu
.TooltipText = snpTools!legende
.OnAction = snpTools!fonction_ouverture
.FaceId = snpTools!idn_icone
End With
snpTools.MoveNext
Loop
snpTools.Close: Set snpTools = Nothing
End Function
*******************************************************
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"turbo design" <turbodi@turbodi.net> a écrit dans le message news:
14b5401c3c3ad$5472bcf0$a601280a@phx.gbl...
Bonjour,
J'aurais besoins d'un conseil pour simplifier un code VBA
gérant la gestion automatique d'une barre de menu au
regard des droits de l'utilisateur qui se connecte.
j'ai une table qui s'appel gestion_menu qui contien les
ID des noms de menu.
Dans la barre de munu, j'ai 8 titres de menu plus quittez.
Malheureusement, le code que j'ai développé m'oblige à le
dupliquer 8 fois en changeant le ID de [categorie_menu]
dans la requête select et le
tag:"GCP" pour le ID 1
tag:"GMC" pour le ID 2
dans le Set cbpTools
ect ......
Il te suffit de rajouter un argument à ta fonction... Ca pourrait donner ça : ******************************************************* Function cmdBar(intCat As Integer, strTag As String)
Dim cb As CommandBar, cbpTools As CommandBarPopup Dim cbTool As CommandBar, cbbNew As CommandBarButton Dim snpTools As Recordset Dim intTotalCurrent As Integer, intCurrControl As Integer
'-- Chercher les outils requis par le mode d 'affichage Set snpTools = CurrentDb.OpenRecordset("Select * from " _ & "gestion_menu Where [categorie_menu] = " & intCat & " And idn_utilisateur = " & Me!ltutilisateur)
'-- '-- Prendre la barre d'outils nécessaire Set cb = CommandBars!gestion_bar_menu
'-- Trouver le menu contextuel Outils et indiquer la '-- barre de commandes qu'il représente Set cbpTools = cb.FindControl(Type:=msoControlPopup, tag:=strTag) Set cbTool = cbpTools.CommandBar
'-- Supprimer les outils actuellement dans le menu intTotalCurrent = cbTool.Controls.Count For intCurrControl = 1 To intTotalCurrent cbTool.Controls(1).Delete Next
'-- Ajouter les nouveaux choix du menu depuis le menu Outils Do Until snpTools.EOF Set cbbNew = cbTool.Controls.Add(Type:=msoControlButton) With cbbNew .Caption = snpTools!nom_menu .TooltipText = snpTools!legende .OnAction = snpTools!fonction_ouverture .FaceId = snpTools!idn_icone End With snpTools.MoveNext Loop
snpTools.Close: Set snpTools = Nothing End Function *******************************************************
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "turbo design" a écrit dans le message news: 14b5401c3c3ad$5472bcf0$ Bonjour,
J'aurais besoins d'un conseil pour simplifier un code VBA gérant la gestion automatique d'une barre de menu au regard des droits de l'utilisateur qui se connecte.
j'ai une table qui s'appel gestion_menu qui contien les ID des noms de menu.
Dans la barre de munu, j'ai 8 titres de menu plus quittez.
Malheureusement, le code que j'ai développé m'oblige à le dupliquer 8 fois en changeant le ID de [categorie_menu] dans la requête select et le tag:"GCP" pour le ID 1 tag:"GMC" pour le ID 2 dans le Set cbpTools ect ......
TURBO DESIGN
Mille merci.
c'est exactement ce que je recherchais.
Thierry
-----Message d'origine----- Bonjour
Il te suffit de rajouter un argument à ta fonction... Ca pourrait donner ça : ******************************************************* Function cmdBar(intCat As Integer, strTag As String)
Dim cb As CommandBar, cbpTools As CommandBarPopup Dim cbTool As CommandBar, cbbNew As CommandBarButton Dim snpTools As Recordset Dim intTotalCurrent As Integer, intCurrControl As Integer
'-- Chercher les outils requis par le mode d 'affichage
Set snpTools = CurrentDb.OpenRecordset("Select * from " _
& "gestion_menu Where [categorie_menu] = " & intCat & " And
idn_utilisateur = " & Me!ltutilisateur)
'-- '-- Prendre la barre d'outils nécessaire Set cb = CommandBars!gestion_bar_menu
'-- Trouver le menu contextuel Outils et indiquer la '-- barre de commandes qu'il représente Set cbpTools = cb.FindControl(Type:=msoControlPopup, tag:=strTag)
Set cbTool = cbpTools.CommandBar
'-- Supprimer les outils actuellement dans le menu intTotalCurrent = cbTool.Controls.Count For intCurrControl = 1 To intTotalCurrent cbTool.Controls(1).Delete Next
'-- Ajouter les nouveaux choix du menu depuis le menu Outils
Do Until snpTools.EOF Set cbbNew = cbTool.Controls.Add (Type:=msoControlButton)
With cbbNew .Caption = snpTools!nom_menu .TooltipText = snpTools!legende .OnAction = snpTools!fonction_ouverture .FaceId = snpTools!idn_icone End With snpTools.MoveNext Loop
snpTools.Close: Set snpTools = Nothing End Function *******************************************************
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "turbo design" a écrit dans le message news:
14b5401c3c3ad$5472bcf0$ Bonjour,
J'aurais besoins d'un conseil pour simplifier un code VBA gérant la gestion automatique d'une barre de menu au regard des droits de l'utilisateur qui se connecte.
j'ai une table qui s'appel gestion_menu qui contien les ID des noms de menu.
Dans la barre de munu, j'ai 8 titres de menu plus quittez.
Malheureusement, le code que j'ai développé m'oblige à le dupliquer 8 fois en changeant le ID de [categorie_menu] dans la requête select et le tag:"GCP" pour le ID 1 tag:"GMC" pour le ID 2 dans le Set cbpTools ect ......
.
Mille merci.
c'est exactement ce que je recherchais.
Thierry
-----Message d'origine-----
Bonjour
Il te suffit de rajouter un argument à ta fonction...
Ca pourrait donner ça :
*******************************************************
Function cmdBar(intCat As Integer, strTag As String)
Dim cb As CommandBar, cbpTools As CommandBarPopup
Dim cbTool As CommandBar, cbbNew As CommandBarButton
Dim snpTools As Recordset
Dim intTotalCurrent As Integer, intCurrControl As
Integer
'-- Chercher les outils requis par le mode
d 'affichage
Set snpTools = CurrentDb.OpenRecordset("Select *
from " _
& "gestion_menu Where [categorie_menu] = " & intCat
& " And
idn_utilisateur = " & Me!ltutilisateur)
'-- '-- Prendre la barre d'outils nécessaire
Set cb = CommandBars!gestion_bar_menu
'-- Trouver le menu contextuel Outils et indiquer la
'-- barre de commandes qu'il représente
Set cbpTools = cb.FindControl(Type:=msoControlPopup,
tag:=strTag)
Set cbTool = cbpTools.CommandBar
'-- Supprimer les outils actuellement dans le menu
intTotalCurrent = cbTool.Controls.Count
For intCurrControl = 1 To intTotalCurrent
cbTool.Controls(1).Delete
Next
'-- Ajouter les nouveaux choix du menu depuis le menu
Outils
Do Until snpTools.EOF
Set cbbNew = cbTool.Controls.Add
(Type:=msoControlButton)
With cbbNew
.Caption = snpTools!nom_menu
.TooltipText = snpTools!legende
.OnAction = snpTools!fonction_ouverture
.FaceId = snpTools!idn_icone
End With
snpTools.MoveNext
Loop
snpTools.Close: Set snpTools = Nothing
End Function
*******************************************************
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"turbo design" <turbodi@turbodi.net> a écrit dans le
message news:
J'aurais besoins d'un conseil pour simplifier un code VBA
gérant la gestion automatique d'une barre de menu au
regard des droits de l'utilisateur qui se connecte.
j'ai une table qui s'appel gestion_menu qui contien les
ID des noms de menu.
Dans la barre de munu, j'ai 8 titres de menu plus
quittez.
Malheureusement, le code que j'ai développé m'oblige à le
dupliquer 8 fois en changeant le ID de [categorie_menu]
dans la requête select et le
tag:"GCP" pour le ID 1
tag:"GMC" pour le ID 2
dans le Set cbpTools
ect ......
Il te suffit de rajouter un argument à ta fonction... Ca pourrait donner ça : ******************************************************* Function cmdBar(intCat As Integer, strTag As String)
Dim cb As CommandBar, cbpTools As CommandBarPopup Dim cbTool As CommandBar, cbbNew As CommandBarButton Dim snpTools As Recordset Dim intTotalCurrent As Integer, intCurrControl As Integer
'-- Chercher les outils requis par le mode d 'affichage
Set snpTools = CurrentDb.OpenRecordset("Select * from " _
& "gestion_menu Where [categorie_menu] = " & intCat & " And
idn_utilisateur = " & Me!ltutilisateur)
'-- '-- Prendre la barre d'outils nécessaire Set cb = CommandBars!gestion_bar_menu
'-- Trouver le menu contextuel Outils et indiquer la '-- barre de commandes qu'il représente Set cbpTools = cb.FindControl(Type:=msoControlPopup, tag:=strTag)
Set cbTool = cbpTools.CommandBar
'-- Supprimer les outils actuellement dans le menu intTotalCurrent = cbTool.Controls.Count For intCurrControl = 1 To intTotalCurrent cbTool.Controls(1).Delete Next
'-- Ajouter les nouveaux choix du menu depuis le menu Outils
Do Until snpTools.EOF Set cbbNew = cbTool.Controls.Add (Type:=msoControlButton)
With cbbNew .Caption = snpTools!nom_menu .TooltipText = snpTools!legende .OnAction = snpTools!fonction_ouverture .FaceId = snpTools!idn_icone End With snpTools.MoveNext Loop
snpTools.Close: Set snpTools = Nothing End Function *******************************************************
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "turbo design" a écrit dans le message news:
14b5401c3c3ad$5472bcf0$ Bonjour,
J'aurais besoins d'un conseil pour simplifier un code VBA gérant la gestion automatique d'une barre de menu au regard des droits de l'utilisateur qui se connecte.
j'ai une table qui s'appel gestion_menu qui contien les ID des noms de menu.
Dans la barre de munu, j'ai 8 titres de menu plus quittez.
Malheureusement, le code que j'ai développé m'oblige à le dupliquer 8 fois en changeant le ID de [categorie_menu] dans la requête select et le tag:"GCP" pour le ID 1 tag:"GMC" pour le ID 2 dans le Set cbpTools ect ......