Solved

Running a macro in Access

Posted on 2003-12-09
9
226 Views
Last Modified: 2013-11-20
I have to run a macro in Access (don't ask me why).  How can I do this through one of the MFC database classes?
0
Comment
Question by:mnashadka
  • 2
  • 2
  • 2
  • +1
9 Comments
 
LVL 48

Expert Comment

by:AlexFM
ID: 9906774
0
 
LVL 48

Expert Comment

by:AlexFM
ID: 9906791
Oops, it's not Access. Sorry.
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 9910989
No.  You can only get at the tables and queries with the MFC Database classes.
You may be able to do it with automation - but I haven't tried this (also do you really mean a macro or a piece of code in a module).
0
 
LVL 8

Author Comment

by:mnashadka
ID: 9912646
It could either be a macro or a sub.  I figured that macros would be easier.  I tried to #import "path\msacc9.olb" to get to the automation, but it gave me some errors about a Property class not being defined.  I was also #importing the MSO9.dll and the VBE6EXT.olb (I think those were the extensions, and I tried it with both no_namespace and using namespace after the import, but I couldn't get past that error.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 5

Expert Comment

by:Nass89
ID: 10189866
Hi,
You could use DDE(Dynamic Data Exchange) to run a macro in Access. I did it using National Instruments Labview, but I didn't it using MFC. I think it is possible to run macro with MFC too.

Good Luck!
0
 
LVL 8

Author Comment

by:mnashadka
ID: 10201077
Nass89, could you explain how you did it?
0
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 125 total points
ID: 10201250
This was in another question.  It looks like it is what you require.  (What error do you get with the #import ?)

COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR);
     
     MSAccess::_Application oApp;
    oApp.CreateDispatch("Access.Application");
     MSAccess::DoCmd oDoCmd = oApp.GetDoCmd();
     oApp.OpenCurrentDatabase("C:\\Documents and Settings\\Administrator\\Desktop\\ASSISTENT BASE\\AS_DB1.mdb", FALSE,"macro1");
     
     oApp.SetVisible(true);

     
     MSAccess::_CurrentProject oProj = oApp.GetCurrentProject();
    MSAccess::AllObjects oObjs = oProj.GetAllModules();

    CString sModName, sProcName, sItem;
   
          //Module must be open:
         
     oDoCmd.RunMacro(COleVariant("macro1"),vOpt,COleVariant(sModName));
    oDoCmd.Maximize();
0
 
LVL 5

Expert Comment

by:Nass89
ID: 10206982
Hi,
As I wrote, I did it with National Instruments LABVIEW. If you can use DDE, the procedure is the same.
First open a DDE connection to your databse file. Second run a command using Macro name, and finally close the connection.
Can you use DDE ? MSDN hase many article about it.

Good Luck!
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Here is how to use MFC's automatic Radio Button handling in your dialog boxes and forms.  Beginner programmers usually start with a OnClick handler for each radio button and that's just not the right way to go.  MFC has a very cool system for handli…
Introduction: Hints for the grid button.  Nested classes, templated collections.  Squash that darned bug! Continuing from the sixth article about sudoku.   Open the project in visual studio. First we will finish with the SUD_SETVALUE messa…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now