Question Hide password

Ajwc

New member
Local time
Today, 12:23
Joined
Apr 4, 2013
Messages
6
I'm not sure if this is the right secoton of the forum...sorry if it isn't

So with this code below I can edit a forum, but I need enter a password. However when you type in the password you can see the letters.
Example:
Let's pretend this is the password box that pops up
_____________________
|What is the password? |
| ___________________|
| Secret |
|____________________|

That's how it shows up, you can see the password.

this is what I want:
_____________________
|What is the password? |
| ___________________|
| XXXXXX |
|____________________|

I want the letters the be hidden so you cannot see what the password is.

How do I do that?
Please explain step by step
Here is the current code:



Private Sub Command25_Click()
Dim Password As String

Password = InputBox("What is the password?")

If Password = "secret" Then
Me.Address.Locked = False
Me.FirstName.Locked = False
Me.LastName.Locked = False
Me.City.Locked = False
Me.Address.Locked = False
Me.StudentNumber.Locked = False
Me.Grade.Locked = False
Me.Homeroom.Locked = False
Me.State_Prov.Locked = False
Me.Postal.Locked = False
Me.TelephoneNumber = False
Me.Contact = False


MsgBox ("You may now make changes")
Else

MsgBox ("Incorrect password, try again")
End If
End Sub
 
Use the word "Password" as the Input Mask property of the control.
 
I'm sorry, I'm new to this whole database thing. Could you please go into exact deatails of how I go about doing that?
 
Right click the textbox and click Properties.This should open a window with a list of its properties.

Find Input Mask under the Data Tab and enter the word "Password" in the right hand side.
 
i don't think you can use inputbox with a password mask, though, unfortunately.

you have to write your own popup password box.
 
A long time ago I found this code to mask the password in an Inputbox. It needs to go in a module.

Code:
Option Compare Database
Option Explicit

'////////////////////////////////////////////////////////////////////
'Password masked inputbox
'Allows you to hide characters entered in a VBA Inputbox.
'
'Code written by Daniel Klann
'http://www.danielklann.com/
'March 2003

'// Kindly permitted to be amended
'// Amended by Ivan F Moala
'// http://www.xcelfiles.com
'// April 2003
'// Works for Xl2000+ due the AddressOf Operator
'////////////////////////////////////////////////////////////////////

'********************   CALL FROM FORM *********************************
'    Dim pwd As String
'
'    pwd = InputBoxDK("Please Enter Password Below!", "Database Administration Security Form.")
'
'    'If no password was entered.
'    If pwd = "" Then
'        MsgBox "You didn't enter a password!  You must enter password to 'enter the Administration Screen!" _
'        , vbInformation, "Security Warning"
'    End If
'**************************************



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

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

Private Declare 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 Function UnhookWindowsHookEx _
    Lib "user32" ( _
    ByVal hHook As Long) _
As Long

Private Declare 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 Function GetClassName _
    Lib "user32" _
    Alias "GetClassNameA" ( _
    ByVal hWnd As Long, _
    ByVal lpClassName As String, _
    ByVal nMaxCount As Long) _
As Long

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

'Constants to be used in our API functions
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    'A window has been activated
    RetVal = GetClassName(wParam, strClassName, lngBuffer)
    If Left$(strClassName, RetVal) = "#32770" Then  'Class name of the Inputbox
        'This changes the edit control so that it display the password character *.
        'You can change the Asc("*") as you please.
        SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0
    End If
End If
    
'This line will ensure that any other hooks that may be in place are
'called correctly.
CallNextHookEx hHook, lngCode, wParam, lParam

End Function

'// Make it public = avail to ALL Modules
'// Lets simulate the VBA Input Function
Public Function InputBoxDK(Prompt As String, Optional Title As String, _
            Optional Default As String, _
            Optional Xpos As Long, _
            Optional Ypos As Long, _
            Optional Helpfile As String, _
            Optional Context As Long) As String
    
Dim lngModHwnd As Long, lngThreadID As Long
    
'// Lets handle any Errors JIC! due to HookProc> App hang!
On Error GoTo ExitProperly
lngThreadID = GetCurrentThreadId
lngModHwnd = GetModuleHandle(vbNullString)
    
hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)
If Xpos Then
    InputBoxDK = InputBox(Prompt, Title, Default, Xpos, Ypos, Helpfile, Context)
Else
    InputBoxDK = InputBox(Prompt, Title, Default, , , Helpfile, Context)
End If

ExitProperly:
UnhookWindowsHookEx hHook

End Function

Sub TestDKInputBox()
Dim X

X = InputBoxDK("Type your password here.", "Password Required")
If X = "" Then End
If X <> "yourpassword" Then
    MsgBox "You didn't enter a correct password."
    End
End If

MsgBox "Welcome Creator!", vbExclamation
    
End Sub


And then I use the following to password protect a form:

Code:
   'Find the password and assign to variable.
    Dim s_Password As String
    s_Password = DLookup("ST_Password", "tblSettings")

    'Declare variables for this action
    Dim strInput As String
    Dim strMsg As String

    Beep

    strMsg = "This option is password protected..." & vbCrLf & vbLf & "Please enter the ''Password'' to gain access."
    strInput = InputBoxDK(Prompt:=strMsg, Title:="")

    'Compare the password and the input text.
    If StrComp(strInput, s_Password, vbBinaryCompare) = 0 Then

        DoCmd.OpenForm "frmSettings"

    Else    'password is incorrect
        MsgBox "Incorrect Password! ", vbExclamation, ""
        Exit Sub

    End If

Catalina
 
I use a different technique, using an additional designed to look like an input box, but which allows you to mask the textbox input field

the thing is, you wouldn't think an apparently trivial thing like this was so hard to do, would you.
 

Users who are viewing this thread

Back
Top Bottom