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]Bloquear Registro Atual X Usuario

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 15/1/2012, 01:16

    Olá, companheiros estou precisando mais uma vez da ajuda de vocês:
    * Uso Access 2003 - Windows 7 64 bits

    Pesquisando neste Fórum achei alguns exemplos, mas que não foram suficientes para o que desejo, explico:

    Peguei a rotina para Bloquear todos os controles marcados com a letra A na linha Marca(Tag) da aba Outras, nas propriedades dos campos que entrarem nesta condição:

    Dim TControle As Control
    For Each TControle In Me.Controls
    If TControle.Tag = "A" Then
    If TControle.Enabled = False Then
    TControle.Enabled = True
    Else
    TControle.Enabled = False
    End If
    End If
    Next TControle
    End If

    Realmente funciona, inclusive nos Subformulários acoplados ao Formulário principal, no entanto, após alguns testes não consegui fazer funcionar, pois o que preciso é apenas Bloquear o Registro corrente ou atual no Formulário e desde que ao mesmo tempo o usuário da Sessão sejam: "Admin" ou "EBMN", isto é, apenas estes 2 usuários têm a permissão para bloquear qualquer registro do Formulário, caso contrário emite uma mensagem do tipo: "Usuário sem Permissão para Bloqueio"; para isso criei um controle não-acoplado que captura o usuário atual na caixa de texto: UsuarioSessao em fonte do controle = UsuárioAtual().
    PS: O sistema é em Rede e utilizo o arquivo .mdw para os usuários cadastrados, onde é solicitado Login e Senha do Usuário ao abrir o Sistema.

    Questoes:
    1)Os comandos acima como já disse funcionam, mas como colocá-los no evento "No atual" do Formulário para poder funcionar ? Ou qual outra forma ?
    2) Também preciso de uma rotina onde apenas esses 2 usuários possam Desbloquear qualquer registro bloqueado por qualquer um deles.
    avatar
    Convidad
    Convidado


    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  Convidad 15/1/2012, 01:57

    Olá Manoel

    Você não precisa uma textbox para retornar o usuário atual.
    Pode usar chamando diretamente a função

    If UsuárioAtual = "Admin" Or UsuárioAtual = "EBMN" Then
    ...
    Else
    MsgBox "Usuário sem Permissão para..."
    End If

    para controlar qualquer atividade no sistema.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 15/1/2012, 15:31

    Olá, Norbs, como vai?

    Valeu pela dica, e quanto as questões principais tem alguma idéia de como fazer?

    Questoes:
    1)Os comandos acima como já disse funcionam, mas como colocá-los no evento "No atual" do Formulário para poder funcionar ? Ou qual outra forma ?
    2) Também preciso de uma rotina onde apenas esses 2 usuários possam Desbloquear qualquer registro bloqueado por qualquer um deles.

    avatar
    Convidad
    Convidado


    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  Convidad 15/1/2012, 16:36

    Você pode criar um controle "Bloqueado" (tipo Sim/Não) na tabela, e inserir este campo no formulário.
    Marcado (Sim/True) não permite edições / Desmarcado (Não/False) habilita edições.

    Este código controla se o registro pode ou não ser editado:

    Private Sub Form_Current()
    If Me.Bloqueado = True Then
    Form.AllowEdits = False
    Else
    Form.AllowEdits = True
    End If
    End Sub

    Este código determina quem pode ou não alterar o status da cx seleção Bloqueado:

    Private Sub Form_Load()
    If UsuárioAtual = "Admin" Or UsuárioAtual = "EBMN" Then
    Me.Bloqueado.Locked = False
    Else
    Me.Bloqueado.Locked = True
    End If
    End Sub

    Este código bloqueia/desbloqueia o registro na alteração do status da cx seleção Bloqueado:

    Private Sub Bloqueado_AfterUpdate()
    If Me.Bloqueado = True Then
    Form.AllowEdits = False
    Else
    Form.AllowEdits = True
    End If
    End Sub
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 17/1/2012, 16:54

    Caro Norbs,

    Fiz conforme suas orientações:

    1) Criei um campo tipo Sim/Não na Tabela
    2) Inseri este campo no Formulário como Caixa de Seleção
    3) Coloquei seus comandos nos eventos: "No atual" e "Ao Carregar" do Formulário
    4) No novo campo criado: Bloqueado no evento "Após atualizar" coloquei seus comandos

    PS: Retirei a letra A na linha Marca(Tag) da aba Outras de todos os controles, inclusive dos Subformulários, como havia feito anteriormente.

    Aconteceu o seguinte: Com Usuário atual = Admin ou EBMN
    1) Para Bloquear o Registro atual: funciona perfeitamente;

    2) Para Desbloquear o Registro atual: não funciona, o registro continua Bloqueado, mesmo clicando várias vezes na caixa de seleção;

    3) Os Subformulários não ficam Bloqueados como antes.

    Obs: Inclusive criei uma caixa de texto ao lado do campo Bloqueado para mostar se o Registro está Bloqueado ou não com o comando: =SeImed([Bloqueado]=-1;"Registro Bloqueado";"Registro Não-Bloqueado"), mas aparece #Nome? independente da situação de Bloqueio ou Desbloqueado.

    avatar
    Convidad
    Convidado


    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  Convidad 17/1/2012, 18:24

    Para bloquear o subform acrescente:
    Me.SeuSubformulário.AllowEdits = False/True
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 17/1/2012, 22:37

    Prezado Norbs,

    O nome do meu Subformulário é: SF_LDBPessoa, então fiz os seguintes testes, separadamente, ou seja, um de cada vez, acrescentado a linha de comando: Me.SeuSubformulário.AllowEdits = False/True, fazendo a devida substituição.

    1) Acrescentei no evento: "No atual" do Formulário, mas quando depurei aparece a mensagem de erro: "Método ou membro de dados não encontrado" e ao clicar em ok aponta para linha: Me.SF_LDBPessoa.AllowEdits = False. Destacando o trecho: .Allowedits =

    2)Acrescentei no evento: "No atual" do Formulário e no Evento do controle Bloqueado "Após atualizar", separadamente para teste, mas quando depurei aparece a mensagem de erro: "Método ou membro de dados não encontrado" e ao clicar em ok aponta para linha: Me.SF_LDBPessoa.AllowEdits = False. Destacando o trecho: .Allowedits =

    3)Acrescentei um botão de comando independente dos 2 testes acima: e no evento "ao clicar" quando depurei aparece a mesma mensagem de erro: "Método ou membro de dados não encontrado" e ao clicar em ok aponta para linha: Me.SF_LDBPessoa.AllowEdits = False. Destacando o trecho: .Allowedits =

    Quanto ao Bloqueio/Desbloqueio do SubForm, fiz da forma correta ?
    E quanto ao Desbloqueio do Registro atual, faltou algo?
    avatar
    Convidad
    Convidado


    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  Convidad 17/1/2012, 23:36

    Se possível, poste o bd ou a parte em questão em 2003.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 18/1/2012, 00:00

    Norbs, vou preparar parte do BD que interessa e coloco como anexo em seguida, ok?
    Aguarde ...

    Segue abaixo o anexo como .zip
    Anexos
    [Resolvido]Bloquear Registro Atual X Usuario AttachmentVileman2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (119 Kb) Baixado 73 vez(es)
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 7/2/2012, 20:08

    Ajuda aos Universitários:

    Caso mais alguém tenha algum arquivo-exemplo com relação a este tópico poderia disponibilizar ou ver o meu anexo aqui disponibilizado e ver o que falta ou onde estou a falhar ?
    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  lupe 8/2/2012, 11:39

    Olá Vileman!

    Baixei o exemplo que voce disponibilizou e não entendi como o sistema identifica um usuario, uma vez que, não há uma janela de login solicitando usuario na abertura do programa. Caso voce tenha um exemplo com a janela de login para disponibilizar, talvez eu possa te ajudar.


    Sucesso!


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 8/2/2012, 23:30

    Boa noite, Lupe

    O sistema identifica o usuário pelo controle não-acoplado "UsuarioSessao" no Formulário, ou seja, não pede login de usuário na abertura do programa, conforme explicado no início deste tópico - mensagem nº 1 - (Segue transcrição parcial da mensagem 1): " ... usuário da Sessão sejam: "Admin" ou "EBMN", isto é, apenas estes 2 usuários têm a permissão para bloquear qualquer registro do Formulário, caso contrário emite uma mensagem do tipo: "Usuário sem Permissão para Bloqueio"; para isso criei um controle não-acoplado que captura o usuário atual na caixa de texto: UsuarioSessao em fonte do controle = UsuárioAtual(). PS: O sistema é em Rede e utilizo o arquivo .mdw para os usuários cadastrados, onde é solicitado Login e Senha do Usuário ao abrir o Sistema."

    Resumo: Ao fazer login com usuário senha e abrir este Formulário, o sistema automaticamente já identifica o usuário atual no controle acima informado, porém se você achar melhor para a solução deste tópico que o nome do usuário seja gravado em um campo na tabela correspondente, ou de outra forma, pode ficar a vontade, desde que, apenas o usuário 'Admin" e "EBMN" sejam os únicos a poderem bloquear ou desbloquear apenas o registro atual desejado.

    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  lupe 9/2/2012, 11:49

    Vileman,

    Ontem, após postar a mensagem, estudei melhor o exemplo e havia compreendido o mesmo e sua duvida, mas esqueci de excluir a mensagem. Me desculpe!

    Em relação a sua duvida, pelo que entendi, ao selecionar o controle "Bloqueado", a função impede a edição dos dados da tabela carregada pelo fomulario. Sendo assim, a edição do controle "Bloqueado" também fica impedida, uma vez que o mesmo tem como fonte de controle um campo da tabela "T33_OrdemBusca".

    Estou a estudar uma saida, caso eu encontre, volto com o exemplo.


    Abraço!


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 9/2/2012, 12:47

    Bom dia, Lupe

    É como você entendeu, então fico no aguardo.

    Muita Paz.
    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  lupe 9/2/2012, 13:22

    Vileman, bom dia!

    Caro amigo, até o momento a unica solução que encontrei para bloquear e desbloquear os controles, foi definir o comando "Locked = False/True" para cada controle do formulario, por exemplo:

    Private Sub Form_Current() 'NO REGISTRO ATUAL - NORBS
    If Me.Bloqueado = True Then
    'Form.AllowEdits = False
    Me.Assunto.Locked = True
    Else
    'Form.AllowEdits = True
    Me.Assunto.Locked = False
    End If
    End Sub

    E o mesmo para o evento "Após atualizar" do controle "Bloqueado".

    Essa solução seria mais trabalhosa pelo fato do formulario ter muitos controles, porém, foi a unica que encontrei até o momento.

    Caso eu encontre outra soluão mais facil, volto a reportar.


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.
    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  lupe 9/2/2012, 13:32

    Esqueci de mensionar que essa solução também serve para os subformularios, exemplo:

    If Me.Bloqueado = True Then
    'Form.AllowEdits = False
    Me.Assunto.Locked = True
    Me.SF_LDBPessoa.Locked = True
    Me.F34_OrdemBuscaXAnexos.Locked = True

    Else
    'Form.AllowEdits = True
    Me.Assunto.Locked = False
    Me.SF_LDBPessoa.Locked = False
    Me.F34_OrdemBuscaXAnexos.Locked = False

    End If
    End Sub


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.
    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  lupe 9/2/2012, 13:58

    Em relação à caixa de texto "SimNao", por nao estar a retornar os valores pretendidos (Registro Bloqueado ou Registro Não-Bloqueado), resolvi substitui-lo por um rótulo nomeado "lblBloq" e inseri a seguinte linha:

    Private Sub Form_Current() 'NO REGISTRO ATUAL - NORBS
    If Me.Bloqueado = True Then
    Me.lblBloq.Caption = "Bloqueado"
    Me.Assunto.Locked = True
    Me.SF_LDBPessoa.Locked = True
    Me.F34_OrdemBuscaXAnexos.Locked = True
    Else
    Me.lblBloq.Caption = "Desbloqueado"
    Me.Assunto.Locked = False
    Me.SF_LDBPessoa.Locked = False
    Me.F34_OrdemBuscaXAnexos.Locked = False
    End If
    End Sub

    O mesmo no evento após atualizar do controle "Bloqueado".


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 10/2/2012, 01:15

    Caro Lupe

    Vou fazer conforme suas indicações e depois informo os resultados, ok ?

    Quanto à permissão de bloqueio/desbloqueio apenas dos 2 usuários como ficou ?

    Valeu mais uma vez.
    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  lupe 12/2/2012, 17:36

    Olá Vileman!

    Em relação aos usuarios a rotina esta a funcionar no perfeito. Mudei os usuarios e não consegui bloquear/desbloquear os registros.


    Sucesso!


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    [Resolvido]Bloquear Registro Atual X Usuario Empty Bloquear Registro Atual X Usuario

    Mensagem  vileman 12/2/2012, 18:17

    Caro Lupe, boa tarde

    Testei sua rotina e consegui fazer funcionar perfeitamente, acrescentando apenas os demais campos a serem bloqueados/desbloqueados, nos eventos: "no atual" do Formulário e "após atualizar" do controle 'Bloqueado'.

    Obrigado pela ajuda.
    Muita Paz.

    PS: Quero também agradecer ao colega Norbs que participou da solução deste tópico.

    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  lupe 13/2/2012, 17:09

    Amigo,

    Fico feliz em ter ajudado.

    O fórum agradece seu retorno.


    Sucesso!


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.

    Conteúdo patrocinado


    [Resolvido]Bloquear Registro Atual X Usuario Empty Re: [Resolvido]Bloquear Registro Atual X Usuario

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/11/2024, 13:15