Executing a module from another DB (1 Viewer)

B

bah

Guest
I am in database A and need to run a standard module that is in database B in the background from database A.

What is the VB code to run a module from a different database? I know how to open the module using the following code - is there a way to change the syntax so that it points to this module in a different database?

DoCmd.OpenModule "modules_excel_input_files"
 

cargobay 69

Registered User.
Local time
Today, 01:16
Joined
May 1, 2001
Messages
25
You cannot open a module that is in database B from within database A. You will have to copy the module from B to A then run the needed procedure from A as any other local procedure.

Darrin@CB69
 

Pat Hartman

Super Moderator
Staff member
Local time
Yesterday, 20:16
Joined
Feb 19, 2002
Messages
43,213
You CAN do this. I don't have any code to post but I'll post the help entry from A97 that should get you started.

Set a Reference to a Visual Basic Project in Another Microsoft Access Database

Each Microsoft Access database includes a Visual Basic project. The Visual Basic project is the set of all modules in the project, including both standard modules and class modules. Every Microsoft Access database, library database, or add-in contained in an .mde file includes a Visual Basic project.
The name of the database and the name of the project can differ. The name of the database is determined by the name of the .mdb (or .mda or .mde) file, while the name of the project is determined by the setting of the Project Name option on the Advanced tab of the Options dialog box, available by clicking Options on the Tools menu. When you first create a database, the database name and project name are the same by default. However, if you rename the database, the project name doesn't automatically change. Likewise, changing the project name has no effect on the database name.

You can set a reference from a Visual Basic project in one Microsoft Access database to a project in another Microsoft Access database, a library database, or an add-in contained in an .mde file. Once you've set a reference, you can run Visual Basic procedures in the referenced project. For example, the Northwind sample database includes a module named Utility Functions that contains a function called IsLoaded. You can set a reference to the project in the Northwind sample database from the project in the current database, and then call the IsLoaded function just as you would if it were defined within the current database.

To set a reference to the project in the Northwind sample database from another project:

1. Open the Module window.
2. On the Tools menu, click References, and click Browse in the References dialog box.
3. In the Files Of Type box, click Databases (*.mdb, *.mda, *.mde).
4. Locate the Northwind.mdb file. If you've installed this file, it will be in the \Program Files\Microsoft Office\Office\Samples folder by default.
5. Click OK.

You should now see "Northwind.mdb" in the list of available references in the References dialog box.

Notes

· Set a reference to the project in another Microsoft Access database when you want to call a public procedure that's defined within a standard module in that database. You can't call procedures that are defined within a class module or procedures in a standard module that are preceded with the Private keyword.
· You can set a reference to the project in a Microsoft Access database only from another Microsoft Access database.

· You can set a reference to a project only in another Microsoft Access 97 database. To set a reference to a project in a database created in a previous version of Microsoft Access, first convert that database to Microsoft Access 97.
· If you set a reference to a project or type library from Microsoft Access and then move the file that contains that project or type library to a different folder, Microsoft Access will attempt to locate the file and reestablish the reference. If the RefLibPaths key exists in the registry, Microsoft Access will first search there. If there's no matching entry, Microsoft Access will search for the file first in the current folder, then in all the folders on the drive. You can create the RefLibPaths key by using the Registry Editor in Windows, under the registry key \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\8.0\Access. For more information about using the Registry Editor, see your Windows documentation.
 

GMc87

New member
Local time
Today, 01:16
Joined
Dec 10, 2017
Messages
2
Hi All

I have been using the site for a while now but just joined up so i can post for some help :).
I have done a couple of days training on access but only been using it for just under a year so still fairly new to it.

I know this is a very old post but it was actually relevant and useful for something i'm doing in access 2010.

I was able to use this post to reference another db and call a sub but i am having an issue when i try to reference my menu form in the code.

So my code in one db opens another db then i am trying to call a sub that will hide buttons depending on who has opened the db. The sub is called fine but its when i reference my form it says it can't find it.

The forms is open and the code works when i run from the db that it is located in. I tried setting visible property from the both and it cant seem to find it.

My code is just a list like below.

Any idea why this isn't working? do i need to reference the db before the form?

Forms![Menu]![Command0].Visible = True
Forms![Menu]![Command2].Visible = True
Forms![Menu]![Command3].Visible = True

Thanks
G
 

Solo712

Registered User.
Local time
Yesterday, 20:16
Joined
Oct 19, 2012
Messages
828

GMc87

New member
Local time
Today, 01:16
Joined
Dec 10, 2017
Messages
2
Hi Jiri

Thanks that works great, i was just using call sub before which wasn't working

GMc
 

CJ_London

Super Moderator
Staff member
Local time
Today, 01:16
Joined
Feb 19, 2013
Messages
16,603
@Solo - make sure you check the date of the post- Darrin has probably retired by now.... :D
 

Users who are viewing this thread

Top Bottom