MS Access receive run-time error '53' for PLVbaApis.dll

I wanted to adapt the AdfinX Real Time code from Excel into a MS Access project. Unfortunately I get a Run-Time error '53' File not found: PLVbaApis.dll when I exectue the code. It works within Excel but not MS Access seems that there are som path information missing. I've tried as well to declare with the full path, copying it to alternative folders, etc... Does someone have an idea on how configure the ms access project so this AdfinXrt stuff will work? See code below

Option Explicit

Private WithEvents mAdxRtList As AdfinXRtLib.AdxRtList
Private mEventHandler As IRecordEventHandler

Private mResult() As Variant
Private Declare PtrSafe Function CreateReutersObject Lib "PLVbaApis.dll" (ByVal progID As String) As Object

Private Sub Class_Initialize()
'ChDir "C:\Program Files (x86)\Thomson Reuters\Eikon\Y\Bin" 'CurrentProject.Path
Set mAdxRtList = CreateReutersObject("AdfinXRtLib.AdxRtList")
End Sub

Best Answer

  • Neil Shah
    Answer ✓

    I have attached a sample Access project which shows how to access Real Time data using EikonDesktopDataAPI in Access.

    Please speak to your account manager to ensure your legal agreement with Thomson Reuters covers you for this kind if data usage.

    access.zip

Answers

  • Are you using the 64-bit version of MS Access?

  • I'm using 32-bit Office suite (Office Professional Plus 2010)

  • Is there a reason you are using the PtrSafe keyword inside a 32-bit process?

    Could you please try the following:

    Private Declare Function CreateReutersObject Lib "C:\Program Files (x86)\Thomson Reuters\Eikon\Y\bin\PLVbaApis.dll" (ByVal progID As String) As Object
  • Regarding PtrSafe I've put that because of the documentation of Thomson Reuters where they recommend to use it if using VBA7. Defining the full path within the declare statement does not help. Same error - I guess there are dependencies to the PLVbaApis.dll which can't be resolved because of not having a default search path.

    image

  • @kurt.meyer

    CreateReutersObject() only works in the context of MS Excel. You will have to use EikonDesktopData API. Basically, instead of creating the objects manually, you will use an internal method of the API, for instance:

    Set EikonConnect = New EikonDesktopDataAPI.EikonDesktopDataAPI()
    ...
    Set AdxRtList = eikonConnect.CreateAdxRtList()
  • Hi Neil

    this is brilliant - thank you very much for your help. Very appreciated! Also thank you very much for the hint in case of the data usage. Very valuable because this is indeed a critical area but in my case this under control :-).

  • Hi Neil

    this is brilliant - thank you very much for your help. Very appreciated! Also thank you very much for the hint in case of the data usage. Very valuable because this is indeed a critical area but in my case this under control :-).

  • I have the same problem as kurt.meyer. The requested DLL exists in the provided path. Moreover the sub worked a few month ago.

    Does anyone have a solution for it?

    Edit: I tried it in Excel, not Access.