?
Solved

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

Posted on 2011-09-19
11
Medium Priority
?
419 Views
Last Modified: 2012-06-21
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!
0
Comment
Question by:Not2ruthless
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
11 Comments
 
LVL 61

Expert Comment

by:mbizup
ID: 36564448
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
 

Author Comment

by:Not2ruthless
ID: 36564463
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
 
LVL 61

Expert Comment

by:mbizup
ID: 36564476
<< 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
Free Backup Tool for VMware and Hyper-V

Restore full virtual machine or individual guest files from 19 common file systems directly from the backup file. Schedule VM backups with PowerShell scripts. Set desired time, lean back and let the script to notify you via email upon completion.  

 

Author Comment

by:Not2ruthless
ID: 36564498
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
 
LVL 48

Accepted Solution

by:
Dale Fye earned 500 total points
ID: 36564523
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
 
LVL 48

Expert Comment

by:Dale Fye
ID: 36564527
If you are using KeyPreview and the KeyDown event to test for Alt_H, then you really don't have a problem.
0
 

Author Comment

by:Not2ruthless
ID: 36564547
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
 

Author Comment

by:Not2ruthless
ID: 36564570
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
 

Author Comment

by:Not2ruthless
ID: 36564571
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
 
LVL 61

Expert Comment

by:mbizup
ID: 36566021
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

Featured Post

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

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

It’s the first day of March, the weather is starting to warm up and the excitement of the upcoming St. Patrick’s Day holiday can be felt throughout the world.
Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Suggested Courses

770 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