MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


    Herdar usuário logado de outro BD

    avatar
    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 26/07/2016

    Herdar usuário logado de outro BD Empty Herdar usuário logado de outro BD

    Mensagem  AMarcos em Sex 10 Jan - 8:39

    Bom dia Srs mestres. O meu projeto que os Srs já me ajudaram bastante tem uma particularidade de ter um Login (imagem 1) que chama um BD onde esse BD chama um outro BD principal (projeto propriamente dito) através de botões individuais para cada cliente (imagem 2).

    A dúvida é: será que eu consigo fazer com que o BD_Principal herde o Usuário Logado do primeiro BD?

    Porque herdando eu consigo atribuir as permissões de cada um já programada no BD_Principal.

    Em ambos, nos formulários Menu_OM e Menu existem a caixa texto "txtUsuarioAtual" que tem como essa fonte de controle "=getUsuarioAtual()"

    A função utilizada para certificação de login é esse:

    Private strUsuarioAtual As String

    Function verificaLogin(argLogin As String, argSenha As String) As Boolean

       Dim criterio As String
       
       criterio = "Login='" & argLogin & "' And Senha='" & argSenha & "'"
       
       If Nz(DCount("Login", "Usuarios", criterio), 0) > 0 Then
           verificaLogin = True
           setUsuarioAtual argLogin
       Else
           verificaLogin = False
       End If

    End Function

    Sub setUsuarioAtual(argUsuario As String)
       strUsuarioAtual = argUsuario
    End Sub

    Function getUsuarioAtual() As String
       getUsuarioAtual = strUsuarioAtual
    End Function


    E o código do botão para chamar cada cliente é esse abaixo:

    Private Sub btn_Entrar_Click()
       If IsNull(Me.comb_Usuario) Or Me.comb_Usuario.Value = "" Then
           MsgBox "O campo Usuario é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
           Me.comb_Usuario.SetFocus

       ElseIf IsNull(Me.txt_Senha) Or Me.txt_Senha.Value = "" Then
           MsgBox "O campo Senha é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
           Me.txt_Senha.SetFocus
       Else
       If Not IsNull(comb_Usuario) And Not IsNull(txt_Senha) Then
           If verificaLogin(comb_Usuario, txt_Senha) Then
                           
               Dim strcmd As String
               Dim objaccess As Access.Application
               strcmd = SysCmd(acSysCmdAccessDir) & "\msaccess.exe " & "C:\Users\Marcos\Desktop\PCVOM_TESTE.accdb"
               Call Shell(strcmd, vbNormalFocus)            
               DoCmd.Quit 'para fechar o banco mdb que chamou o outro
       
           Else
               MsgBox "Senha inválida!", vbExclamation, "Login"
               Me.txt_Senha = Null
               Me.txt_Senha.SetFocus
               
             End If
         End If
       End If
    End Sub
    Anexos
    Herdar usuário logado de outro BD AttachmentAnexo.pdf
    Você não tem permissão para fazer download dos arquivos anexados.
    (269 Kb) Baixado 5 vez(es)
    avatar
    renpv
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 12/01/2015

    Herdar usuário logado de outro BD Empty Re: Herdar usuário logado de outro BD

    Mensagem  renpv em Sex 10 Jan - 18:10

    Eu só consigo imaginar uma solução assim se gravasse os dados de login em uma tabela do banco de dados. Mas se for fazer assim (gravando em uma tabela) é importante criar uma espécie de token com uma data e hora de expiração. Ou criar uma rotina pra fazer um loop na tabela de logins e excluir os logins que estão ativos há um determinado tempo, tipo mais de 30 minutos.
    Se não quiser trabalhar com gravação em uma tabela poderia fazer isso criando arquivos na pasta do servidor, com conteúdo criptografado. Mas ainda assim acho a solução da tabela mais seguro.

    Isso é o que eu consigo imaginar agora. Aguardar se os colegas conhecem uma solução melhor.
    avatar
    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 26/07/2016

    Herdar usuário logado de outro BD Empty Re: Herdar usuário logado de outro BD

    Mensagem  AMarcos em Sex 10 Jan - 20:16

    Meu caro amigo não consegui visualizar sua solução. Será que vc poderia dar mais detalhes ou explicar através de exemplo prático?

    Att,


    AMARCOS
    avatar
    renpv
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 12/01/2015

    Herdar usuário logado de outro BD Empty Re: Herdar usuário logado de outro BD

    Mensagem  renpv em Sab 11 Jan - 10:05

    Pelo que entendi você quer compartilhar as permissões de cada usuário entre dois Bancos de Dados e, principalmente, entendi que ao logar em um sistema você nem precisaria logar no outro porque a variável de usuário logado já estaria setada. Pois bem, sugeri que você criasse uma tabela que gravasse os dados desse usuário logado ao invés de deixar em uma variável.

    Talvez eu nem tenha entendido o seu projeto direito. Eu só vi as telas de login mas não conheço a estrutura de tabelas. O mais importante, na verdade, é saber se são dois sistemas que compartilham as mesmas tabelas ou se são sistemas independentes, com tabelas independentes.
    avatar
    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 182
    Registrado : 26/07/2016

    Herdar usuário logado de outro BD Empty Re: Herdar usuário logado de outro BD

    Mensagem  AMarcos em Sab 11 Jan - 11:45

    São sim BD independentes pq eu não fiz a relação entre eles.

    O formulário Menu_OM do BD onde contem o Frm_Login serve para o cliente selecionar seu BD que fica habilitado de acordo com o Usuário Logado. O problema que com essa intermediação desse BD eu não consigo identificar, no projeto propriamente dito que tem início através do Formulário Menu, o Usuário que está Logado e com isso não consigo ter as diferenças de acesso que cada tipo de usuário possui.

    Vou colocar aqui um Extrato do meu Projeto para o amigo e os demais mestres deste fórum poder ter uma visualização melhor.


    Att,


    AMarcos
    Anexos
    Herdar usuário logado de outro BD AttachmentExtrato.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (560 Kb) Baixado 0 vez(es)

    Conteúdo patrocinado

    Herdar usuário logado de outro BD Empty Re: Herdar usuário logado de outro BD

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Sab 25 Jan - 22:04