MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Não aparesse o nome do usuario logado

    Compartilhe

    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 566
    Registrado : 05/02/2011

    [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Samuel Ribeiro em Qui 08 Jan 2015, 16:26

    Boa tarde

    Em meu projeto tenho 3 formulários onde tem um campo txt chamado txtUsuarioLogado, conforme orientações deste excelente fórum criei um modulo de nome LoginSenha onde tem o código com segue abaixo:
    Código:
    ption Compare Database
    Option Explicit
    Private strUsuarioAtual As String

    Function verificaLogin(argLogin As String, argSenha As String) As Boolean
    Dim criterio As String
    criterio = "User'" & argLogin & "' And Senha='" & argSenha & "'"
    If Nz(DCount("User", "TBLUsuario", 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

    Na propriedade Fonte do Controle adicionei =getUsuarioAtual()
    Mas infelizmente não aparece nada no campo em questão.
    Alguém pode me orientar onde posso estar errando?

    Desde ja agradeço.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2512
    Registrado : 29/06/2012

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Noobezinho em Qui 08 Jan 2015, 17:02

    Samuel

    Sabe fazer depuração do código VBA?

    Se não, veja como fazer ali embaixo, na minha assinatura.

    Então, coloque um ponto de interrupção (clicando bem no inicio da linha de código entre o extremo esquerdo da folha de código e alinha
    vertical) no inicio da frase:
    Function verificaLogin
    Essa linha ficara da cor marrom(não é bem isso, eu sei) , dai tecle F8 cada teclada, irá executar uma linha.
    Desse modo poderá ver os valores das variáveis, e ver onde ta o erro.


    Mas acredito que o erro está após o usuário digitar seu nome e senha nas caixas de textos

    []'s

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 566
    Registrado : 05/02/2011

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Samuel Ribeiro em Qui 08 Jan 2015, 18:09

    Boa tarde Noob

    Muito Obrigado pela atenção

    Fiz como você me disse, depurou o código e a depuração parou neste bloco de código:

    Function getUsuarioAtual()As String
    getUsuarioAtual = strUsuarioAtual
    End Function

    Onde a primeira linha Function getUsusarioAtual() As String fica selecionado de amarelo
    e quando ele esta selecionado de marrom e posiciono o ponteiro do mouse em cima dele aparece strUsuarioAtua = ""

    Desde ja agradeço


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2512
    Registrado : 29/06/2012

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Noobezinho em Qui 08 Jan 2015, 19:23

    Samuel assim:
    A linha amarela é onde o programa parou no código.

    Se for verificar uma variável depois da linha amarela,  essa variável estará sem dados,
    pois o programa não chegou até ela.

    Function getUsuarioAtual()As String
    getUsuarioAtual = strUsuarioAtual
    End Function


    Para verificar o conteúdo da variável, o programa tem que estar parado na linha
    abaixo da variável em questão, conforme o exemplo acima (rosa, exibe melhor que amarelo)

    Agora , que evitar essa função?

    Se sim, então:

    Num módulo qualquer, crie essa variável publica abaixo:

    Public login As login
    Type login
       id  As Long
       Usuario As String * 50
    End Type



    No botão ou evento que você usa apos digitar o nome e senha do usário, coloque:

    login.id = .Column(0)  'IdUsuário
    login.Usuario = .Column(1) 'Nome do usuário


    Pronto, no resto do aplicativo é so chamar
    login.id  irá retornar a id do usuário logado
    login.Usuario irá retornar o nome do usuário.


    []'s

    Noob


    Última edição por Noobezinho em Qui 08 Jan 2015, 19:53, editado 2 vez(es)


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 566
    Registrado : 05/02/2011

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Samuel Ribeiro em Qui 08 Jan 2015, 19:44

    Noob, estava analisando mais detalhadamente aqui, e vi que no meu formulário de login onde o Usuário entra com o seu nome de usuário, não é um txt e sim uma caixa de combinação.
    Sera que tem algo a ver?


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2512
    Registrado : 29/06/2012

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Noobezinho em Qui 08 Jan 2015, 19:56

    Quando estava digitando a mensagem anterior, pensei nisso.
    Portanto, já modifiquei o código passado naquela mensagem.

    O exemplo que pegou deve ter um outro formulário para cadastro dos usuários.
    Para fazer o login no aplicativo, foi feita uma combobox para facilitar.
    Utilize o código que passei, melhor que que a função.

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 566
    Registrado : 05/02/2011

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Samuel Ribeiro em Sex 09 Jan 2015, 10:05

    Bom dia Noob

    No botão que uso para acessar o sistema através do Usuário = User e senha = Senha tem um código onde através dele separa - se se o Usuário usa un formulário chamado Usuário ou um formulário chamado administrador.
    Sera que tem como eu encaixar este código e ele funcionar?
    A variável já foi criada.

    Segue o código do botão:

    Código:
    Private Sub cmdEntrar_Click()
    Dim Identificacao As Integer

        If Me.txtSenha.Value = DLookup("[Senha]", "[TBLUsuario]", "[User] = '" & Me.txtUser & "'") Then
            Identificacao = DLookup("[NivelSeguranca]", "[TBLUsuario]", "[User] = '" & Me.txtUser & "'")
            Select Case Identificacao
                Case 1
                    stDocName = "FormAdministrador"
                Case 2
                    stDocName = "FormUsuario"
            End Select
            DoCmd.Close
            DoCmd.OpenForm stDocName
          Else
            MsgBox "Senha Incorreta, Digite novamente.", vbInformation + vbOKOnly, "Sistema de Consulta de Produtos - Erro"
            Me.txtSenha.Value = ""
            Exit Sub
        End If

    End Sub

    Desde ja agradeço


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2512
    Registrado : 29/06/2012

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Noobezinho em Sex 09 Jan 2015, 10:20

    Experimente assim:



    Private Sub cmdEntrar_Click()
    Dim Identificacao As Integer

       If Me.txtSenha.Value = DLookup("[Senha]", "[TBLUsuario]", "[User] = '" & Me.txtUser & "'") Then
           Identificacao = DLookup("[NivelSeguranca]", "[TBLUsuario]", "[User] = '" & Me.txtUser & "'")
           Select Case Identificacao
               Case 1
                   stDocName = "FormAdministrador"
               Case 2
                   stDocName = "FormUsuario"
           End Select
           ' Já que não está usando a Id do usuário, vou colocar somente o nome dele na variável login.
           login.Usuario = me.txtUser
           DoCmd.Close
           DoCmd.OpenForm stDocName
       Else
           MsgBox "Senha Incorreta, Digite novamente.", vbInformation + vbOKOnly, "Sistema de Consulta de Produtos - Erro"
           Me.txtSenha.Value = ""
           Exit Sub
       End If

    End Sub


    Mas não esqueça de declarar a variável login num módulo básico

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 566
    Registrado : 05/02/2011

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Samuel Ribeiro em Sex 09 Jan 2015, 11:24

    A declaração desta variável não é aquela que você me passou nas mensagens anteriores?

    Public Login as login
    Type login
    id as long

    etc

    Ou vou ter que declarar ela em um modulo classe?



    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2512
    Registrado : 29/06/2012

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Noobezinho em Sex 09 Jan 2015, 13:15

    Sim, tem que declarar, mas não num modulo Classe e sim num modulo básico, na sessão de módulos
    Pode declarar em qualquer um, mas se tiver um modulo global, melhor nele.

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 566
    Registrado : 05/02/2011

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Samuel Ribeiro em Sex 09 Jan 2015, 15:44

    Noob
    Parece uma coisa muito simples, mas não da certo de jeito nenhum.
    Veja como eu fiz:
    Montei um novo modulo de nome vrLogin e fiz a variável assim:

    Option Compare Database
    Option Explicit

    Private login As String

    Mas insiste em dar este erro:

    Erro de compilação:
    Qualificador Invalido

    E no código abaixo o Login fica selecionado de azul:

    Private Sub cmdEntrar_Click()
    Dim Identificacao As Integer

    If Me.txtSenha.Value = DLookup("[Senha]", "[TBLUsuario]", "[User] = '" & Me.txtUser & "'") Then
    Identificacao = DLookup("[NivelSeguranca]", "[TBLUsuario]", "[User] = '" & Me.txtUser & "'")
    Select Case Identificacao
    Case 1
    stDocName = "FormAdministrador"
    Case 2
    stDocName = "FormUsuario"
    End Select
    ' Já que não está usando a Id do usuário, vou colocar somente o nome dele na variável login.
    login.Usuario = me.txtUser
    DoCmd.Close
    DoCmd.OpenForm stDocName
    Else
    MsgBox "Senha Incorreta, Digite novamente.", vbInformation + vbOKOnly, "Sistema de Consulta de Produtos - Erro"
    Me.txtSenha.Value = ""
    Exit Sub
    End If

    End Sub



    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2512
    Registrado : 29/06/2012

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Noobezinho em Sex 09 Jan 2015, 17:34

    Veja na mensagem nº 4 como é a variável login é declarada e seus tipos ( type )

    Você não colocou o tipo:

    Public login As login
    Type login
      'id  As Long ' esse não precisa, você não está usando o código do usuário
      Usuario As String * 50
    End Type

    E como disse, essa declaração vai na parte dos módulos e não na página de classe de um formulário.

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 566
    Registrado : 05/02/2011

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Samuel Ribeiro em Sex 09 Jan 2015, 18:18

    Noob

    Veja a pasta de PrintScreens em anexo, lembrando que os campos no formulário de login não são acoplados, e nem o campo txtUsuarioAcoplado dos formulários onde eu quero que apareça o Usuário Logado. Estou usando o Access 2013 se fizer alguma diferença. o txtUsuarioLogado dos formularios estão vindo em branco.

    Muito obrigado pela sua preciosa atenção
    Anexos
    PrintScreen_Login.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (291 Kb) Baixado 6 vez(es)


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2512
    Registrado : 29/06/2012

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Noobezinho em Sex 09 Jan 2015, 19:59

    Agora só falta colocar no evento Ao abrir do formulário:

    txtUsuarioAcoplado = login.usuario


    Pronto, agora quando precisar exibir o nome do usuário logado, é só colocar no evento Ao Abrir do formulário:

    NomedaCaixaTexto = login.usuario



    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    Samuel Ribeiro
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 566
    Registrado : 05/02/2011

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Samuel Ribeiro em Sab 10 Jan 2015, 10:56

    Bom dia Noob

    Funcionou e muito bem
    Muito Obrigado pela paciência.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2512
    Registrado : 29/06/2012

    Re: [Resolvido]Não aparesse o nome do usuario logado

    Mensagem  Noobezinho em Sab 10 Jan 2015, 11:27

    Que ótimo Samuel

    Valeu o retorno

    Boa sorte

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

      Data/hora atual: Sex 09 Dez 2016, 13:29