[AccessD] Record security

John Colby jwcolby at ColbyConsulting.com
Sun Apr 2 08:58:05 CDT 2006


Thanks for this.  Another tool stored away in my framework.

:~) 


John W. Colby
www.ColbyConsulting.com 


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
Sent: Sunday, April 02, 2006 6:49 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Record security

On 2 Apr 2006 at 6:19, John Eget wrote:

> In this database, each record entry has an individual field for name.   I
> would like anyone to view another individuals records but I am trying 
> to prevent another individual from editing or deleting a record that 
> does not belong to them.  Does someone have an example of a login 
> process and then disabling a record from being deleted or edited by
another individual.


Here's how I would do it using the Windows login name:
Assuming that the field in the record is called "UserName"

1. Create a function in a module to read the Windows login name:
Option Compare Database   'Use database order for string comparisons
Option Explicit
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal
lpBuffer As String, nSize As Long) As Long Function Username() Dim strUname
As String * 32 Dim lngResponse As Long lngResponse = GetUserName(strUname,
32) If Len(strUname) > 1 Then
    Username = Left$(strUname, InStr(strUname, Chr$(0)) - 1) Else
    Username = "No logged In User"
End If
End Function

When the record is created, automatically fill the UserName field (a hidden
bound text box on the form with a default value of "=Username()" 
will do it).


In the Form_Delete and Form_BeforeUpdate events include:

If Me.UserName <> Username() Then
   Msgbox "You can't alter someone else's records"
  Canel = True
  Exit Sub
End If

-- 
Stuart


-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list