I have an Access project that uses the iGrid drag-and-drop methods. These methods use the VBRUN.DataObject type in the arglists of various events.

This requires a reference to ...\SysWOW64\msvbvm60.dll (VBRUN), but I cannot set the reference because there is a name conflict with VBE7.DLL (VBE).

Now, in my existing project, everything is there, but the reference to msvbvm60.dll appears as follows:


The problem is, I am trying to make a new project, but I cannot find how to set the reference for VBRUN as above (with the "\3" suffix - what does that mean by the way?). (Note: to be honest I do not remember how I managed to set that up in the existing project, but I do not recall encountering this problem...)

I have seen this thread in the forum: 

which mentions using the VBA method References.AddFromFile, but this gives me the same error when it executes at runtime (name conflict).

Can anyone help?

Many thanks.

It's ok that a reference to MSVBVM60.DLL is displayed as "msvbvm60.dll\3", but it's a question for Microsoft why they do so.

I think you are developing in a 64-bit edition of Microsoft Office. Because of that, you will not be able to use the 32-bit MSVBVM60.DLL. Have you tried to install a 32-bit Office and try the same in it?
Hi Igor,

Thanks for the response.

No, we are developing in 32-bit Office. (We use too many 32-bit-based libraries - I think this applies to iGrid too, and mscomctl.ocx which we still use for other controls, even though we have moved to iGrid for our grids).

So in 32-bit Access, I cannot set the reference from within the Access project, nor can execute the References.AddFromFile at runtime (both cases raise the name conflict error). It's still a mystery to me how I have the '\3' reference in my current project.

By the way the drag-and-drop from one iGrid to the another works fantastic in Access.

I also cannot add a reference to msvbvm60.dll in my 32-bit Access (Microsoft Office 365, Version 2207, Build 15427.20210).

But do we really need it? What if we replace VBRUN.DataObject event arguments simply with the Object type?
Hi Igor,

if I use a procedure on the iGrid event OLEStartDrag, the declaration in my VBA code is automatically set to this:

Private Sub igAvailable_OLEStartDrag(Data As VBRUN.DataObject, AllowedEffects As Long)

I cannot change the type declaration for Data - if I do it will not compile ("Procedure declaration does not match description of event...")