MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]permissão de acesso

    avatar
    MateusC
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 93
    Registrado : 29/03/2016

    [Resolvido]permissão de acesso Empty [Resolvido]permissão de acesso

    Mensagem  MateusC 26/11/2016, 18:47

    boa anoite meus caros amigos, mais uma vez pedindo vossa ajuda e aprendendo convosco.

    Estou com algumas dificuldades de implementar alguns procedimentos de permissão, buscando relatório por usuários e movimentos de levantamento ou devolução de terminal rf por usuários.
    Exemplo: ao escolher os terminais rf para levantamento no campo “nome interno” no subformulário “Frm_Detalhes_Levantamento” se o usuário logado for Oper113 filtra mostrando apena os terminais RF cujo os nomes são RF_11301, RF_11302, RF_11303…etc., se o usuário for Oper118 filtra mostrando apenas os terminais RF cujo os nomes são RF_11801, RF_11802, RF_11802…etc. e se for usuário administrador mostra todos os terminais rf. E os relatórios têm que ser visualizados ou imprimidos por usuários.

    obs: estou usando o access 2010

    agradeço desde já a vossa ajuda!

    admin:admin-113
    oper113:oper-113
    oper118:oper-118
    Anexos
    [Resolvido]permissão de acesso AttachmentTEXTE.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.2 Mb) Baixado 25 vez(es)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]permissão de acesso Empty Re: [Resolvido]permissão de acesso

    Mensagem  FabioPaes 26/11/2016, 21:24

    Amigo, faltou algumas Informações... Estou fazendo de acordo com o que eu Acho que pretende...

    Estou partindo da idéia que todos os Terminais que a descrição INICIAM com 113 Pertencem ao Oper113, Todos que a descrição INICIAM com 118 Pertencem ao Oper118.
    E que pretende que apenas estejam visiveis os Terminais referente a seus Operadores, com exceção do Usuario Admin.



    No Evento Ao Receber Foco do Campo "NOME INTERNO" do seu subformulario, coloque o Código a Baixo:

    Observe que:
    ***Realizo a Extração dos Tres primeiros Caracter e comparo de acordo com o Nome do Operador (left([NOME INTERNO],3)=113).
    *** Foi Colocado "Admin" e "Desenv113" no Caso que mostra todos os terminais.

    Private Sub NOME_INTERNO_GotFocus()


                'Selecionará o caso baseado no Valor da Variavel que armazena o Nome do Usuario Logado.
    Select Case loginU.Usuario
                'Para Admin e Desenv113 ele mostra todos os Terminais (Nao aplica Filtro Algum)
        Case "Admin", "Desenv113"
        Me.NOME_INTERNO.RowSource = "SELECT ID_RF, [NOME INTERNO] FROM [TERMINAL RF] ORDER BY [NOME INTERNO];"
                'Para o Usuario Oper113 ele irá buscar os Terminais cujo os Tres primeiros Numeros são Iguais a 113 (left([NOME INTERNO],3)=113)
        Case "Oper113"
        Me.NOME_INTERNO.RowSource = "SELECT ID_RF, [NOME INTERNO] FROM [TERMINAL RF] WHERE left([NOME INTERNO],3)=113 ORDER BY [NOME INTERNO];"
        Case "Oper118"
        Me.NOME_INTERNO.RowSource = "SELECT ID_RF, [NOME INTERNO] FROM [TERMINAL RF] WHERE left([NOME INTERNO],3)=118 ORDER BY [NOME INTERNO];"
        Case Else
                'Se não for positivo para nenhum dos Casos, ele simplesmente nao exibe nenhum valor na Combo
        Me.NOME_INTERNO.RowSource = ""
    End Select


    End Sub



    [Resolvido]permissão de acesso 11boidh


    Quanto ao Relatório preciso saber qual relatório e por onde e gerado ele...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    MateusC
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 93
    Registrado : 29/03/2016

    [Resolvido]permissão de acesso Empty Re: [Resolvido]permissão de acesso

    Mensagem  MateusC 27/11/2016, 15:11

    boas mestre FabioPaes, mais um grande aprendizado. vou já implementar também no subformulário “Frm_Detalhes_Devolução”.

    quanto ao relatório é gerado pelas seguinte consultas:

    relatorio levantamento é gerado na consulta "levantamento por Data_hl";
    relatorio de devolução de rf é gerado pela consulta devolução por Data;
    rel_terminal rf em falta é gerado pela consulta Terminais em falta;
    rel_estado dos Terminais rf gerado por estado dos Terminais rf;
    histico_levantamento é gerado pela consulta historico_levantamento;
    historico_devolucao gerado pela consulta historico_devolucao.

    de referir que a ideia é a mesma, caso o usuário logado for oper113 busca onde os terminais RF cujo os nomes são RF_11301, RF_11302, RF_11303…etc.
    caso o usuário logado for oper118 mostra o relatorio onde os nomes são RF_11801, RF_11802, RF_11802…etc e se for usuário administrador mostra todo.

    desde já agradeço!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]permissão de acesso Empty Re: [Resolvido]permissão de acesso

    Mensagem  FabioPaes 28/11/2016, 17:32

    Quanto aos relatórios, aplicaremos um filtro neles ao Carregar...

    No Evento Ao Carregar dos relatorios coloque basicamente o mesmo Select Case:


    Dim F As String


    Select Case loginU.Usuario
        Case "Admin", "Desenv113"
        Me.FilterOn = False
             
        Case "Oper113"
        F = "left([NOME INTERNO],3)=113" 'Constroi o Filtro 
        Me.Filter = F 'Aplica o Filtro
        Me.FilterOn = True 'Ativa o Filtro
        Case "Oper118"
        F = "left([NOME INTERNO],3)=118"
        Me.Filter = F
        Me.FilterOn = True
        Case Else
        F = "left([NOME INTERNO],3)=000"
        Me.Filter = F
        Me.FilterOn = True
    End Select


    Tera que fazer apenas uma Mudança nas consultas...

    Nas suas consultas base dos relatórios, o Campo Nome Interno esta mostrando o Código do Terminal, teremos que mostrar a Descrição do Terminal para realizarmos a filtragem...

    Para isso Adicione a Tabela Terminal RF nas consultas, e coloque o Campo NOME INTERNO da tabela Terminal RF


    Veja:
    [Resolvido]permissão de acesso 2yumz4x


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    MateusC
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 93
    Registrado : 29/03/2016

    [Resolvido]permissão de acesso Empty Re: [Resolvido]permissão de acesso

    Mensagem  MateusC 3/12/2016, 17:12

    mestre FabioPaes és um génio, está a funcionar. mas constatei uma situação em que, quando cancela-se um determinado relatório antes de inserir a data  e posteriormente abrir novamente e inserir a data em que se pretende visualizar, o usuário desaparece nos formulários de relatórios e também não consegue buscar os terminais rf para fazer os movimentos (levantamento ou devolução).

    para ultrapassar esta situação só tenho que fechar aplicação e abrir novamente, só assim volta no estado normal.
    careço da vossa ajuda, tem como ultrapassar esta situação.

    desde  já agradeço.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]permissão de acesso Empty Re: [Resolvido]permissão de acesso

    Mensagem  FabioPaes 4/12/2016, 00:46

    Amigo, esse problema sera corrigido com um tratamento de erro, onde ignoraremos esse erro 2501.

    Na verdade devemos em todos os codigos do VBA colocar um Tratamento de erro, pois se nao colocarmos o VBA irá mostrar essa janela padrao de erro alem de ser feia ela contem uma opção não tão legar para pessoas indesejadas...

    Faça um teste:

    Acesse seu aplicativo normalmente com um usuário que nao deve ter acesso alguma ao desenvolvimento...
    Agora execute o Relatorio, e cancele na hora que aparecer pedindo a data...
    Na mensagem de erro, clique em DEPURAR. E veja o que irá acontecer...

    Simplesmente vc estará com acesso total a Tela do VBA e vera todos os Codigos bem como poderá altera-los....
    Mesmo sem ter usado o F5, F11 ou qualquer outra coisa, vc tera acesso aos codigo.

    Por isso a necessidade de um Tratamento de Erros.


    Nos Botões que chama os relatorios, altere de acordo:



    Private Sub btMRLevantamento_Click()
    On Error GoTo F
    DoCmd.OpenReport "RELATORIO LEVANTAMENTO", acViewReport
    F:
    'Ignora o Erro 2501
    If Err.Number = 2501 Or Err.Number = 0 Then
    Err.Number = 0
    Exit Sub
    Else

    'Quando ocorrer outro tipo de erro ele mostra atraves de Msgbox, e nao a padrao do VBA
    MsgBox "Nº Erro: " & Err.Number & " - " & Err.Description, vbInformation
    Exit Sub
    End If
    End Sub



    O que é feito nesse caso é ignorar o erro de numero 2501. somente ele, qnd for outro ele mostrara normalmente...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    MateusC
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 93
    Registrado : 29/03/2016

    [Resolvido]permissão de acesso Empty Re: [Resolvido]permissão de acesso

    Mensagem  MateusC 4/12/2016, 19:19

    palavras são poucas para expressar a minha gratidão. mais um grande aprendizado!

    obs: relativamente a tela do VBA, também coloquei uma senha e ocultei... para não expor os códigos.

    muito obrigado.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]permissão de acesso Empty Re: [Resolvido]permissão de acesso

    Mensagem  FabioPaes 4/12/2016, 19:48

    Grato pelo retorno! Até a próxima se Deus quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Conteúdo patrocinado


    [Resolvido]permissão de acesso Empty Re: [Resolvido]permissão de acesso

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 08:35