[AccessD] Get User Name

Bryan Carbonnell carbonnb at gmail.com
Wed Sep 1 07:57:06 CDT 2004


On Wed, 1 Sep 2004 08:18:57 -0400, Nicholson, Karen <cyx5 at cdc.gov> wrote:
> It is great to be back on the list and working with Access again.  It
> has been a while.  I am looking for the user defined function to grab
> the network user name or id.  I have inherited an Access 2002/SQL 2000
> back-end database run completely by macros with a pretty bad password
> scenario.  This should keep me busy for a while.

The functions that Bobby and Stuart posted are fine for a windows
network, but if you are on a Novell network this will get you the
NovellID

'*+ Module API declarations
  Private Declare Function NWCallsInit Lib "calwin32" _
    (reserved1 As Byte, reserved2 As Byte) As Long
  Private Declare Function NWDSCreateContextHandle Lib "netwin32" _
    (newHandle As Long) As Long
  Private Declare Function NWDSWhoAmI Lib "netwin32" _
    (ByVal context As Long, ByVal objectName As String) As Long
  Private Declare Function NWDSFreeContext Lib "netwin32" _
    (ByVal context As Long) As Long
'*- Module API declarations

Function fGetNovellUserName() As String
'--------------------------------------------------------------------------
'.Purpose      : To get Novell User Name
'.Author       : Bryan Carbonnell
'.Date         : 3-May-2002
'.Called by    : frmUser Form_Open Event
'.Calls        : NWCallsInit - API
'.               NWDSCreateContextHandle - API
'.               NWDSFreeContext - API
'.Revised      : 3-May-2002 - Original
'--------------------------------------------------------------------------

On Error GoTo fGetNovellUserName_Error

Dim lngContextCode   As Long
Dim lngContext As Long
Dim strMyName As String

' allocate space for user name
  On Error GoTo fGetNovellUserName_Error

strMyName = Space(255)

' initialize NetWare client
lngContextCode = NWCallsInit(0, 0)

If lngContextCode <> 0 Then
  'NW Client cannot be initialised, so we can't get the User Name
  fGetNovellUserName = "NWCallsInit() - Cannot initialize"
Else
  ' a context is req'd for all NDS functions
  lngContextCode = NWDSCreateContextHandle(lngContext)
  If lngContextCode = 0 Then
    'We have a valid Context, so we can do stuff
    ' now, get my name
    lngContextCode = NWDSWhoAmI(lngContext, strMyName)
    'Change to return username
    If lngContextCode = 0 Then
      strMyName = Left(strMyName, (InStr(strMyName, Chr(0)) - 1))
      strMyName = Mid(strMyName, 4)
      fGetNovellUserName = strMyName
    End If
    ' clean-up
    lngContextCode = NWDSFreeContext(lngContext)
  End If
End If

Exit_fGetNovellUserName:

  On Error GoTo 0
  Exit Function

'Error Handler
fGetNovellUserName_Error:

'Display Error Message
MsgBox "Error " & Err.Number & " (" & Err.Description & _
          ") in procedure " & .ProcedureName & " of " & .ModuleName
'Exit the procedure properly
Resume Exit_fGetNovellUserName
'For Debugging
Resume

End Function



-- 
Bryan Carbonnell - carbonnb at gmail.com
Life's journey is not to arrive at the grave safely in a well
preserved body, but rather to skid in sideways, totally worn out,
shouting "What a great ride!"



More information about the AccessD mailing list