ADVAPI32.DLL different versions preventing MS Access from functioning RRS feed

  • Question

  • Does anyone know what this module does?

    I have four users who are unable to use their MS Access database via Citrix because the desktop has a different version of this module to the version on their own PCs.

    When they open the database, everything is grayed out and they cannot make any updates.

    When using the Citrix desktop, the version of MS Access and this module are different.

    Everything works fine from their own PC.

    Why would this prevent an MS Access application from functioning correctly?

    Everyone at my organization is getting fed up with all the quirks and foibles that make MS Access so difficult to use.

    Thursday, October 24, 2019 6:12 PM

All replies

  • Mainly it is used for Registry from a little search i done...check where exactly it is used and if you can substitute the functionality in another way
    Thursday, October 24, 2019 7:09 PM
  • It is a part of Windows.

    Sam Hobbs

    Thursday, October 24, 2019 8:50 PM
  • I use 3 different remote techniques: 2 are Microsoft's Remote Desktop Server and one is Citrix technology.  All 3 have slightly different initial connection / logon - - but then all work fine.  I am the application developer not an infrastructure manager.  Am impressed that you narrowed it down to a specific dll   My guess is that it is not the Access database file but rather the Office/Access license/edition that is different on Citrix.  You could verify that by whipping up another split db file and seeing if it has the same symptoms.

    It almost seems like the Citrix workspace isn't the professional edition and doesn't include the Access license though the behavior would not really as you describe.  Assume that the Access icon is showing active for the .accdb file type.  

    You don't have any issues with Word or Excel one presumes....  have no answer but interested to hear - I think your best forum possibly is with Citrix managers.

    Thursday, October 24, 2019 9:43 PM
  • The only time I interface with ADVAPI32.DLL is when I use APIs in VBA.  Is that what you are referring to here?  If so, how are you using it exactly?

    If you are running Access over CITRIX, is this the full version or Runtime?
    Have you establish a Trusted Location for their FEs to run in?

    Daniel Pineault, 2010-2019 Microsoft MVP
    Professional Support: http://www.cardaconsultants.com
    MS Access Tips and Code Samples: http://www.devhut.net

    Friday, October 25, 2019 10:00 AM
  • I use an API call to get the logged-on user's network id.

    That is all I use and I have used that API for many years with no previous issues.

    As far as the version of MS Access on Citrix I have no idea since I don't have access to it.

    Personally, I cannot use that desktop since it does not have the software I need; my team remotes into our office PCs.

    The user's front-ends are on their own network share. There is one share per user. No, I have not done anything with trusted locations. As I said, everything works perfectly from their own PCs and has done for years. The only reason the users are using this desktop is because their office is moving and it will take a week to move their PCs to the new location. They use this application every day so they need access to it while their PCs are in limbo.

    Friday, October 25, 2019 10:08 PM
  • Here is the Declare for the API I am using, so it does use that DLL.

    Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
        "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

    Is there any other way to achieve this without using a Windows API?

    Friday, October 25, 2019 10:12 PM
  • my guess at the moment is that the location of the citrix Access application - and the location of FE file are not trusted together.

    this would be consistent with the point you make that it works ok from the user's PC - - as the FE file and user's PC (holding the Access application) were probably made trusted long past.

    essentially citrix Access is like a new PC with Access with no preset trusts anywhere.  

    it could be something else - but I would start here

    when connected via citrix - open the FE in admin mode and trust the FE file location and trust the location/folder of where the Access software resides (this should be there by default but just to be safe)..... if everything then works you have to repeat that for all users....

    Friday, October 25, 2019 10:22 PM
  • There are various ways to determine the current user, see 


    But the real issue here, in my opinion, is trusted location.  You're going to have to validate that when the user is the database that the front end is in a trusted location.  Until you validate that, there is no point doing anything else.  You should also validate bitness or use conditional compilation to make it work on both bitnesses.

    Daniel Pineault, 2010-2019 Microsoft MVP
    Professional Support: http://www.cardaconsultants.com
    MS Access Tips and Code Samples: http://www.devhut.net

    Saturday, October 26, 2019 7:18 PM