Pesquisei no fórum mas não encontrei nada que se referisse a este problema
No meu projeto, criei uma ribbon com várias abas e grupos, que quando o sistema inicia, estão todos os controles desabilitados (enabled = False)
No evento OnLoadRibbon: Todos os comando se iniciam desabilitados
Na função GetEnabled
Na abertura do sistema, abre uma tela de login, a qual após informar o dados de login e senha, libera para o sistema, onde cada grupo de usuários tem acesso a determinados controles ou não.
Se eu logar como "administrador, funciona normalmente
Se eu logar como "Aux Administrativo I", e definir o InvalidateControl para apenas os controles do primeiro grupo (descritos abaixo), funciona corretamente
Porém se eu tentar executar o comando como descrito acima, com todos esses InvalidateControl, no qual ingloba vários controle, de vários grupos e abas, ele simplesmente libera tudo, até os quais eu não coloquei para liberar.
Já tentei de várias formas, inclusive usar o GetVisible em vez do GetEnabled, também não funcionou, gerando o mesmo problema, onde mostrava todos os comandos, até os quais eu não queria.
Se alguém puder me auxiliar, fico grato!
No meu projeto, criei uma ribbon com várias abas e grupos, que quando o sistema inicia, estão todos os controles desabilitados (enabled = False)
No evento OnLoadRibbon: Todos os comando se iniciam desabilitados
- Código:
Sub OnRibbonLoad(ribbon As IRibbonUI)
' Callbackname in XML File "onLoad"
Set gobjRibbon = ribbon
bolEnabled = False
End Sub
Na função GetEnabled
- Código:
Sub GetEnabled(control As IRibbonControl, ByRef enabled)
Select Case control.Id
Case Else
enabled = bolEnabled
End Select
End Sub
Na abertura do sistema, abre uma tela de login, a qual após informar o dados de login e senha, libera para o sistema, onde cada grupo de usuários tem acesso a determinados controles ou não.
- Código:
Private Sub Comando14_Click()
If usuario = usuarioTab And senha = senhaTab And usuario = "Administrador" Then
bolEnabled = True
gobjRibbon.Invalidate
DoCmd.Close
ElseIf usuario = usuarioTab And senha = senhaTab And usuario = "Aux. Administrativo I" Then 'Vanderleia
bolEnabled = True
gobjRibbon.InvalidateControl "btnEquipamento"
gobjRibbon.InvalidateControl "btnFuncionario"
gobjRibbon.InvalidateControl "btnVeiculo"
gobjRibbon.InvalidateControl "btnProdutos"
gobjRibbon.InvalidateControl "btnEntEstoque"
gobjRibbon.InvalidateControl "btnCombustivel"
gobjRibbon.InvalidateControl "btnEnergia"
gobjRibbon.InvalidateControl "btnAgua"
gobjRibbon.InvalidateControl "btnAdministrativo"
gobjRibbon.InvalidateControl "btnComunicacao"
gobjRibbon.InvalidateControl "btnSaiEstoque"
gobjRibbon.InvalidateControl "btnMEquipamento"
gobjRibbon.InvalidateControl "btnMVeiculo"
gobjRibbon.InvalidateControl "btnOutros"
gobjRibbon.InvalidateControl "btnManutSistema"
gobjRibbon.InvalidateControl "btnEpi"
gobjRibbon.InvalidateControl "btnSoja"
gobjRibbon.InvalidateControl "btnMilho"
gobjRibbon.InvalidateControl "btnTrigo"
gobjRibbon.InvalidateControl "btnAveia"
gobjRibbon.InvalidateControl "btnAzevem"
gobjRibbon.InvalidateControl "btnArroz"
gobjRibbon.InvalidateControl "btnTriticale"
gobjRibbon.InvalidateControl "btnESoja"
gobjRibbon.InvalidateControl "btnEMilho"
gobjRibbon.InvalidateControl "btnETrigo"
gobjRibbon.InvalidateControl "btnEAveia"
gobjRibbon.InvalidateControl "btnEAzevem"
gobjRibbon.InvalidateControl "btnEArroz"
gobjRibbon.InvalidateControl "btnETriticale"
gobjRibbon.InvalidateControl "btnFSoja"
gobjRibbon.InvalidateControl "btnFMilho"
gobjRibbon.InvalidateControl "btnFTrigo"
gobjRibbon.InvalidateControl "btnFAveia"
gobjRibbon.InvalidateControl "btnFAzevem"
gobjRibbon.InvalidateControl "btnFArroz"
gobjRibbon.InvalidateControl "btnFTriticale"
gobjRibbon.InvalidateControl "btnGeral"
DoCmd.Close
Else
MsgBox ("Usuário ou senha incorretos"), vbInformation, "Atenção"
End If
End Sub
Se eu logar como "administrador, funciona normalmente
Se eu logar como "Aux Administrativo I", e definir o InvalidateControl para apenas os controles do primeiro grupo (descritos abaixo), funciona corretamente
- Código:
gobjRibbon.InvalidateControl "btnEquipamento"
gobjRibbon.InvalidateControl "btnFuncionario"
gobjRibbon.InvalidateControl "btnVeiculo"
gobjRibbon.InvalidateControl "btnProdutos"
Porém se eu tentar executar o comando como descrito acima, com todos esses InvalidateControl, no qual ingloba vários controle, de vários grupos e abas, ele simplesmente libera tudo, até os quais eu não coloquei para liberar.
Já tentei de várias formas, inclusive usar o GetVisible em vez do GetEnabled, também não funcionou, gerando o mesmo problema, onde mostrava todos os comandos, até os quais eu não queria.
Se alguém puder me auxiliar, fico grato!
- Anexos
- Capturar tela (Telefone).JPG
- Você não tem permissão para fazer download dos arquivos anexados.
- (24 Kb) Baixado 8 vez(es)