How to identify the name of current subform that's in focus on access form

Hi,
I have a form named frmStudentServiceAndQtrDetails.  On it is a subform named frmsubQtrClassDetails.  
I have a button on the parent form named Help.  I work with blind users, and I'd like them to be able to Alt h to open an input box, informing them exactly what form they are in.  (It is a busy form and would be easy to get lost in.)  My input box works fine except I can seem to get the right syntax to find that we are in the subform.  
Any ideas appreciated.  Thanks!
Not2ruthlessAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Dale FyeConnect With a Mentor Commented:
Are your "blind users" totally blind or just partially?

I generally use conditional formatting on all of my textboxes and combo boxes which changes the background color of the control when the control has the focus.

as mbizup states, if you are clicking a button on the main form, or using Alt_H as a shortcut for that control, then you have a minor, but not insurmountable problem.

You can use the Screen.Previous control property to identify the control that had the focus prior to clicking on your Help button on pressing Alt_H.  Assuming your Alt_H is a shortcut to cmd_Help, it might look like:

Private Sub cmd_Help_Click

    if Screen.PreviousControl.ControlType = acSubform then
        msgbox "You are on subform: " & Screen.PreviousControl.Name
    Else
       ' some other code here
    end if

End sub

If you want to indicate what control had the focus inside that subform, you have to drill down

    if Screen.PreviousControl.ControlType = acSubform Then
        set frm = Screen.PreviousControl.Form
        set ctrl = frm.ActiveControl
        msgbox "You are in the " & ctrl.name & " control on subform: " & frm.name
    end if




If you are using the forms Key_Preview and KeyDown event to check for Alt_H
0
 
mbizupCommented:
If you have a button on your subform, you can use the following code to determine the name of the subform that the button is on:

MsgBox Me.ActiveControl.Parent.Name


<I have a button on the parent form named Help.>
The trouble I see with this approach is that if a user is editing subform data and clicks a button on the main form to determine which subform they were editing, they are no longer in the subform - but back in the main form. (so the answer to the question "where am I" when clicking a button on the main form would always be "the main form")
0
 
Not2ruthlessAuthor Commented:
Thanks.  The Button itself is on the main form.  I'd like to use that same help button to determine what form (the main or sub), that I'm in.  If it's not possible, I could put two help buttons but would like to avoid it
Ruth.  
0
Easily Design & Build Your Next Website

Squarespace’s all-in-one platform gives you everything you need to express yourself creatively online, whether it is with a domain, website, or online store. Get started with your free trial today, and when ready, take 10% off your first purchase with offer code 'EXPERTS'.

 
mbizupCommented:
<< to determine what form (the main or sub), that I'm in >>

That's the problem right there... as soon as you click a main form button you are in the main form, regardless of whether you were in the main or sub form before clicking the button.



0
 
Not2ruthlessAuthor Commented:
Just for kicks, is there any syntax at all to determine the name of the subform one is in at any given time?  (Pretending I don't have a Help Button that would divert focus).  Now I'm just curious :)
0
 
Dale FyeCommented:
If you are using KeyPreview and the KeyDown event to test for Alt_H, then you really don't have a problem.
0
 
Not2ruthlessAuthor Commented:
Fyed, the previous control did the trick.  I work with totally blind users, but like to make it user friendly for us photo-dependents as well!!

Thanks mBizup and Fyed!!
0
 
Not2ruthlessAuthor Commented:
I've requested that this question be closed as follows:

Accepted answer: 0 points for Not2ruthless's comment http:/Q_27316697.html#36564547

for the following reason:

Didn't mean to use my comment as the solution, sorry!
0
 
Not2ruthlessAuthor Commented:
I accidently added a comment before accepting solution by Fyed.  Would like to retract that and Accept Fyed's solution.
So am objecting to my own non-solution :)
0
 
mbizupCommented:
fyed,

<< Screen.PreviousControl.Name >>

Nice trick!  

I was envisioning some convoluted method of determining the user's "last location" by using global variables.

It makes sense that there is a "PreviousControl" for this type of need...

I learned something new :)


Ruth,

<So am objecting to my own non-solution :) >

Your objection cancelled the pending closure which was marking your answer as accepted... the button you need to accept fyed's solution should be visible to you again.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.