Amigos,
Estudando a função CBool eu aprendi o seguinte:
Ela serve para converter uma expressão em um Boolean. Se a expressão avaliar como um valor diferente de zero, CBool retornará True; caso contrário, retornará False.
Veja a sintaxe:
CBool(Expressão)
O F1 do access disponibiliza o seguinte código para entedermos como funciona isso:
********************************************************************
Dim A, B, Check
A = 5: B = 5 ' Inicializa variáveis.
Check = CBool(A = B) ' Check contém True.
A = 0 ' Define a variável.
Check = CBool(A) ' Check contém False.
********************************************************************
Claramente vemos que a função faz a comparação:
- Se dados semelhantes, retorna True
- Se dados diferentes, retorna False
Compreendido a função, resolvi escrever um código para validar a entrada de usuário no banco de dados, veja a seguir:
****************************************************************************************
On Error GoTo trataErro 'Inicio o tratamento de erros
Dim senhaDoBD As String 'Variável que armazenará a senha contida na tabela do banco
Dim senhaDoForm As String 'Variável que armazenará a senha digitada no formulário
Dim AcessoAoSistema As Boolean 'Variável que armazenará o resultado da função Cbool: True ou False
senhaDoBD = DLookup("senha", "tblUsuario", "login = Forms!LoginCBool!txtLogin") 'Armazena a senha que está no banco
senhaDoForm = txtSenha 'Armazena a senha digitada no formulário
AcessoAoSistema = CBool(senhaDoBD = senhaDoForm) 'Faz a comparação se for igual devolverá o valor True
If AcessoAoSistema = True Then 'Se devolveu True, é porque a senha confere
DoCmd.OpenForm "MenuDeControle", acNormal 'Se confere, abro o formulário de Menu (Principal)
Else
MsgBox "Senha incorreta, tente novamente", vbCritical, "Erro" 'Se não confere, emite a mensagem ao usuário
End If
Exit_trataErro:
Exit Sub 'Encerro o tratamento de erro
trataErro: 'Se algo inesperado aconteceu, entra em ação o tratamento de erro
If Err.Number = 94 Then
MsgBox "O processamento de dados falhou" _
& vbCrLf & vbCrLf & "Escreva um nome válido.", vbCritical, "Erro"
Else
MsgBox "O processamento de dados falhou" _
& vbCrLf & vbCrLf & "Trata-se do erro n° " & Err.Number & _
" Descrição: " & Err.Description, vbCritical, "Erro"
End If
Resume Exit_trataErro
****************************************************************************************
É isso aí moçada, a idéia foi falar um pouco desta das muitas funções de conversão que aplicam-se ao Microsoft Access. Espero que sirva em suas carreiras.
Abaixo faça o download do exemplo:
Download
Até
Estudando a função CBool eu aprendi o seguinte:
Ela serve para converter uma expressão em um Boolean. Se a expressão avaliar como um valor diferente de zero, CBool retornará True; caso contrário, retornará False.
Veja a sintaxe:
CBool(Expressão)
O F1 do access disponibiliza o seguinte código para entedermos como funciona isso:
********************************************************************
Dim A, B, Check
A = 5: B = 5 ' Inicializa variáveis.
Check = CBool(A = B) ' Check contém True.
A = 0 ' Define a variável.
Check = CBool(A) ' Check contém False.
********************************************************************
Claramente vemos que a função faz a comparação:
- Se dados semelhantes, retorna True
- Se dados diferentes, retorna False
Compreendido a função, resolvi escrever um código para validar a entrada de usuário no banco de dados, veja a seguir:
****************************************************************************************
On Error GoTo trataErro 'Inicio o tratamento de erros
Dim senhaDoBD As String 'Variável que armazenará a senha contida na tabela do banco
Dim senhaDoForm As String 'Variável que armazenará a senha digitada no formulário
Dim AcessoAoSistema As Boolean 'Variável que armazenará o resultado da função Cbool: True ou False
senhaDoBD = DLookup("senha", "tblUsuario", "login = Forms!LoginCBool!txtLogin") 'Armazena a senha que está no banco
senhaDoForm = txtSenha 'Armazena a senha digitada no formulário
AcessoAoSistema = CBool(senhaDoBD = senhaDoForm) 'Faz a comparação se for igual devolverá o valor True
If AcessoAoSistema = True Then 'Se devolveu True, é porque a senha confere
DoCmd.OpenForm "MenuDeControle", acNormal 'Se confere, abro o formulário de Menu (Principal)
Else
MsgBox "Senha incorreta, tente novamente", vbCritical, "Erro" 'Se não confere, emite a mensagem ao usuário
End If
Exit_trataErro:
Exit Sub 'Encerro o tratamento de erro
trataErro: 'Se algo inesperado aconteceu, entra em ação o tratamento de erro
If Err.Number = 94 Then
MsgBox "O processamento de dados falhou" _
& vbCrLf & vbCrLf & "Escreva um nome válido.", vbCritical, "Erro"
Else
MsgBox "O processamento de dados falhou" _
& vbCrLf & vbCrLf & "Trata-se do erro n° " & Err.Number & _
" Descrição: " & Err.Description, vbCritical, "Erro"
End If
Resume Exit_trataErro
****************************************************************************************
É isso aí moçada, a idéia foi falar um pouco desta das muitas funções de conversão que aplicam-se ao Microsoft Access. Espero que sirva em suas carreiras.
Abaixo faça o download do exemplo:
Download
Até