Solved

MS Access parent form event not received by VB? OCX control

Posted on 2010-09-06
2
601 Views
Last Modified: 2012-05-10
I am recreating an OCX UserControl in VB6 I did many years ago.  It is basically a series of buttons to be used in an MS Access 2003 form.  The UserControl provides standardized functions to navigate the records, add, edit, delete, save and undo.  It is also aware of the application and security context.

As I said, I developped and used such a control many years ago but I don't have the source code anymore.

I created the UserControl and dropped it in the Access Form.  Clicking on the buttons will raise the events and perform the appropriate action.

However, the control does not received the form's events.  

The code snippet from the control below illustrates that I declared a module variable withEvents to hold the form reference.  This variable is initialized in the Show event handler of the userControl.  It is used by the cmdAdd_click event to move the form to a new record (this is working).  The form also received the events raised by the control (such as BeforeAdd and AfterAdd).  However, the m_ParentForm_Current event is never fired (as any other form events I've tried).

I think it may be some configuration on either the VB6 or Access side.

I compiled the userControl in both Apartment and Single threaded modes without difference in the result.


Dim WithEvents m_ParentForm As Access.Form

Dim m_AccessApp As Access.Application





Private Sub UserControl_Show()

    

    If Ambient.UserMode Then

        Set m_ParentForm = Extender.Parent.object

        Set m_AccessApp = m_ParentForm.Application

    end if



end sub





Private Sub cmdAdd_Click()

    Dim wCancel As Boolean

    

    wCancel = False

    RaiseEvent BeforeAdd(wCancel)

    

    If Not wCancel Then

        m_AccessApp.DoCmd.GoToRecord acDataForm, m_ParentForm.Name, acNewRec

        RaiseEvent AfterAdd

    End If



End Sub





Private Sub m_ParentForm_Current()



    MsgBox "Current"

    

End Sub

Open in new window

0
Comment
Question by:ragoran
2 Comments
 
LVL 57

Accepted Solution

by:
Jim Dettman (Microsoft MVP/ EE MVE) earned 500 total points
ID: 33612939
<<I think it may be some configuration on either the VB6 or Access side. >>
  In Access, unless the property sheet reads "[Event Procedure]", the event won't fire even if sunk.  I have some code here to run through forms and add that if you want.
JimD.
0
 
LVL 14

Author Comment

by:ragoran
ID: 33613224
YES!

I knew it was something simple but could not remember.

Thanks Jim

0

Featured Post

U.S. Department of Agriculture and Acronis Access

With the new era of mobile computing, smartphones and tablets, wireless communications and cloud services, the USDA sought to take advantage of a mobilized workforce and the blurring lines between personal and corporate computing resources.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

919 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

15 Experts available now in Live!

Get 1:1 Help Now