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

3 participantes

    [Resolvido]Senha imputboxDK dando erro

    avatar
    carlosbell10
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 137
    Registrado : 04/10/2016

    [Resolvido]Senha imputboxDK dando erro Empty [Resolvido]Senha imputboxDK dando erro

    Mensagem  carlosbell10 24/7/2021, 03:48

    quero abrir o formulario com senha , mas sem aparecer a senha , estou usando este codigo , mas quando eu coloco imputBoxDK, sempre da erro de
    compilação , sub ou function nao definida

    estou usando esse codigo ao abrir no formulario e tb um modulo

    Private Sub btnshift_Click()
    Dim x As String
    Dim y As String
    Dim strForm As String
    'By JPaulo ® Maximo Access

    strForm = "formshift" 'nome do form que abre se user e senha forem os corretos

               x = InputBox("Digite o seu USUÁRIO...") 'inputbox texto
               y = InputBoxDK("Digite a sua SENHA...") 'inputbox com mascara de password
               
    'procura na tabela se o user e senha são iguais aos informados
           If x = DLookup("Usuario", "tblshift", "Usuario='" & x & "' And Senha = '" & y & "'") Then
           
    'se corresponderem fecha o form atual e acessa ao segundo form
               DoCmd.Close
               DoCmd.OpenForm strForm, acNormal
               Exit Sub
           Else
    'se não corresponderem, dá mensagem e cancela
           MsgBox "Senha incorreta, tente novamente...", vbCritical
           DoCmd.CancelEvent
           End If

    End Sub



    e no módulo

    Option Explicit
    '////////////////////////////////////////////////////////////////////
    'Password masked inputbox
    'Allows you to hide characters entered in a VBA Inputbox.
    '
    'Code written by Daniel Klann
    'March 2003
    '////////////////////////////////////////////////////////////////////


    'API functions to be used
    Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
                                                         ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long

    Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

    Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
                                             (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _
                                             ByVal dwThreadId As Long) As Long

    Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

    Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _
                                               (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _
                                               ByVal wParam As Long, ByVal lParam As Long) As Long

    Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _
                                                                             ByVal lpClassName As String, _
                                                                             ByVal nMaxCount As Long) As Long

    Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long

    Private Const EM_SETPASSWORDCHAR = &HCC
    Private Const WH_CBT = 5
    Private Const HCBT_ACTIVATE = 5
    Private Const HC_ACTION = 0

    Private hHook As Long

    Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
       Dim RetVal
       Dim strClassName As String, lngBuffer As Long

       If lngCode < HC_ACTION Then
           NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam)
           Exit Function
       End If

       strClassName = String$(256, " ")
       lngBuffer = 255

       If lngCode = HCBT_ACTIVATE Then

           RetVal = GetClassName(wParam, strClassName, lngBuffer)

           If left$(strClassName, RetVal) = "#32770" Then

               SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0
           End If

       End If

       CallNextHookEx hHook, lngCode, wParam, lParam

    End Function

    Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos,
                           Optional YPos, Optional HelpFile, Optional Context) As String
       Dim lngModHwnd As Long, lngThreadID As Long

       lngThreadID = GetCurrentThreadId
       lngModHwnd = GetModuleHandle(vbNullString)

       hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)

       InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context)
       UnhookWindowsHookEx hHook

    End Function
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7305
    Registrado : 15/03/2013

    [Resolvido]Senha imputboxDK dando erro Empty Re: [Resolvido]Senha imputboxDK dando erro

    Mensagem  ahteixeira 30/7/2021, 09:08

    avatar
    carlosbell10
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 137
    Registrado : 04/10/2016

    [Resolvido]Senha imputboxDK dando erro Empty Re: [Resolvido]Senha imputboxDK dando erro

    Mensagem  carlosbell10 31/7/2021, 23:31

    obrigado, ja procurei mas nao achei ,
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1772
    Registrado : 13/12/2016

    [Resolvido]Senha imputboxDK dando erro Empty Re: [Resolvido]Senha imputboxDK dando erro

    Mensagem  Alexandre Fim 1/8/2021, 16:35

    Carlos,
    Pq vc não descomplica!
    Se você já tem um formulário de login para o usuário acessar o sistema, utilize-o também para quaisquer autenticações que deseja fazer..
    Não há necessidade de criar InputBox para tal.

    Espero ter ajudado.

    []'s

    FIM
    avatar
    carlosbell10
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 137
    Registrado : 04/10/2016

    [Resolvido]Senha imputboxDK dando erro Empty Re: [Resolvido]Senha imputboxDK dando erro

    Mensagem  carlosbell10 3/8/2021, 03:52

    ok, obrigado , ajudou muito
    avatar
    carlosbell10
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 137
    Registrado : 04/10/2016

    [Resolvido]Senha imputboxDK dando erro Empty Re: [Resolvido]Senha imputboxDK dando erro

    Mensagem  carlosbell10 4/8/2021, 23:08

    foi resolvido
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7305
    Registrado : 15/03/2013

    [Resolvido]Senha imputboxDK dando erro Empty Re: [Resolvido]Senha imputboxDK dando erro

    Mensagem  ahteixeira 6/8/2021, 08:13

    Olá a todos,

    Carlos, que bom que resolveu!
    Se poder partilhar a solução o fórum agradece.

    Outra coisa, o título do tópico só se escreve na mensagem nr. 1, depois sempre que responde deve deixr em branco.
    O próprio sistema do fórum repete, e deve ser assim para não falsear as buscas no fórum.

    Abraço a todos
    avatar
    carlosbell10
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 137
    Registrado : 04/10/2016

    [Resolvido]Senha imputboxDK dando erro Empty Re: [Resolvido]Senha imputboxDK dando erro

    Mensagem  carlosbell10 8/8/2021, 22:17

    usei este codigo , junto com o modulo



    Código:
    Dim x As String

    Dim y As String

    Dim strForm As String

    'By JPaulo :registered: Maximo Access



    strForm = "formshift" 'nome do form que abre se user e senha forem os corretos



               x = InputBox("Digite o seu USUÁRIO...") 'inputbox texto

               y = InputBoxDK("Digite a sua SENHA...") 'inputbox com mascara de password

               

    'procura na tabela se o user e senha são iguais aos informados

           If x = DLookup("Usuario", "tblshift", "Usuario='" & x & "' And Senha = '" & y & "'") Then

           

    'se corresponderem fecha o form atual e acessa ao segundo form

               DoCmd.Close

               DoCmd.OpenForm strForm, acNormal

               Exit Sub

           Else

    'se não corresponderem, dá mensagem e cancela

           MsgBox "Senha incorreta, tente novamente...", vbCritical

           DoCmd.CancelEvent

           End If



    End Sub



    E NO MÓDULO



    Option Compare Database



    #If VBA7 Then



       Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal ncode As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr

       Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr

       Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr

       Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As Long

       Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As LongPtr, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr

       Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

       Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long

       

       Private hHook As LongPtr



       Private Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPtr

           

           Dim strClassName As String

       

           If lngCode < 0 Then

               NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam)

               Exit Function

           End If

       

           strClassName = String$(256, " ")

       

           If lngCode = 5 Then _

               If Left$(strClassName, GetClassName(wParam, strClassName, 255)) = "#32770" Then _

                   SendDlgItemMessage wParam, &H1324, &HCC, Asc("*"), &H0

       

           Call CallNextHookEx(hHook, lngCode, wParam, lParam)

       

       End Function

       

    #Else



       Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long

       Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

       Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

       Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

       Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

       Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

       Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long

       

       Private hHook As Long



       Private Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

           

           Dim strClassName As String

       

           If lngCode < 0 Then

               NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam)

               Exit Function

           End If

       

           strClassName = String$(256, " ")

       

           If lngCode = 5 Then _

               If Left$(strClassName, GetClassName(wParam, strClassName, 255)) = "#32770" Then _

                   SendDlgItemMessage wParam, &H1324, &HCC, Asc("*"), &H0

       

           Call CallNextHookEx(hHook, lngCode, wParam, lParam)

       

       End Function

       

    #End If



    Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, Optional YPos, Optional HelpFile, Optional Context) As String

       

       hHook = SetWindowsHookEx(5, AddressOf NewProc, GetModuleHandle(vbNullString), GetCurrentThreadId)

       InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context)

       Call UnhookWindowsHookEx(hHook)



    End Function
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7305
    Registrado : 15/03/2013

    [Resolvido]Senha imputboxDK dando erro Empty Re: [Resolvido]Senha imputboxDK dando erro

    Mensagem  ahteixeira 18/8/2021, 17:42

    Olá a todos,

    Carlos, obrigado pela partilha.
    O fórum agradece.

    Abraço a todos

      Data/hora atual: 18/9/2021, 17:48