Então vamos lá meu amigo, em favor de seu pedido, falarei um pouco de variável.
Sendo uma breve introdução diria que a variável é um nome que armazena um valor em determinada posição da memória, ou seja, aloca espaço.
Olha este exemplo:
A=1
B=1
C=A+B
Qual seria o resultado?
Resposta: C=2
Vamos agora analisar a lógica:
Veja que utilizamos de 3 variáveis, sendo elas: A, B e C
Todas 3 armazenaram valores:
A armazenou o valor 1
B armazenou o valor 1
C amazenou a soma de A e B
Você poderia se utilizar de uma quarta variável para se utilizar de qualquer variável acima.
A premissa de uso é essa descrita acima.
Agora empregando o uso no VBA, existe algumas considerações, veja:
- Tem que iniciar com uma letra;
Exemplos:
=) 123nomeDaVariavel errado
=) nomeDaVariavel certo
- Precisam serem declaradas determinando o tipo de dados (tipo de informação que será armazenado)
A palavra Dim é a que usamos para declararmos
Exemplo:
Dim nomeDaVariavel
Seguido do tipo de dado que ela será:
Exemplo:
As String (para saber os tipos de dados, pesquise sobre "tipo de dados access")
Em muitos casos ela serve apenas como referência de um caminho (endereço) que é o caso quando se utiliza o tipo Object. Quando vemos um código em que declara que é do tipo Object e seta o fso, o objeto fso não está dentro da variável, apenas a referência a ele está gravado.
Então a nossa declaração ficaria assim:
Dim nomeDaVariavel As String
Pronto, a partir daí é só usá-la.
Há outro detalhe, no VBA, as variáveis podem ser privadas ou públicas, então quando se manipula uma variável que foi declara entre o Private Sub e End Sub ela é privada. Quando se manipula em um módulo utilizando Public nomeDaVariavel ou Global nomeDaVariavel, então ela é pública.
Olhei o seu código de login e logo identifiquei uma maneira de se implantar a variável que armazenaria o nome de quem entraria no sistema:
Crie um módulo e digitei:
Option Compare Database
Option Explicit
Global strLogado As String
Depois no seu código de login fiz o seguinte:
Private Sub Comando12_Click()
Dim rs As DAO.Recordset
Dim DB As DAO.Database
Set DB = CurrentDb
Set rs = DB.OpenRecordset("tbl_usuarios")
Call fncTítuloUsuário
rs.Index = "PrimaryKey"
rs.Seek "=", Me.Texto13
If rs.NoMatch = True Then
MsgBox "Usuário não cadastrado, Acesso Negado", , "Aviso"
Me.txtFunc.SetFocus
Exit Sub
Else
If Me.txtSenha = rs("txtSenha") Then
MsgBox "Senha Confirmada com Sucesso", , "Aviso"
'Armazenei o nome do usuário na variável strLogado
strLogado = Me.txtFunc.Column(1)
Nivel = rs("nivel")
Select Case Nivel
Case Is = "ADM"
Forms!Abertura!Caixa.Enabled = True
'Referenciei a variável em cada case
Forms!Abertura!Logado = strLogado
Case Is = "OP1"
Forms!Abertura!Manutencao.Enabled = True
'Referenciei a variável em cada case
Forms!Abertura!Logado = strLogado
End Select
Else
MsgBox "Senha Inválida Acesso Negado", , "Aviso"
Me.txtSenha.SetFocus
DoCmd.Quit
End If
End If
rs.Close
DoCmd.Close acForm, "frmLogin"
End Sub
E asim o caso se resolveu, o campo Logado já recebe o nome correto.
e se desejar chamar o nome do usuário em qualquer outro formulário, basta ao abrir o form colocar o seguinte:
Me!SeuCampoLogado = strLogado
Abaixo o seu exemplo já adaptado:
http://www.speedyshare.com/files/28306685/Contas_Receber.rar
Espero que eu tenha conseguido passar a noção. Digo que variável é uma coisa muito importante para ser estudado, veja, é dificil pensar em linhas de código sem relacionar uma variável. A internet tem muito material a respeito, vale a pena tirar uma semana para ler só sobre variáveis, aliás, essa é a dica: Temos que ser intenso por questão e não por questões.
Abraço!