Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Mouse Cursor Location and Form Behavior on Open

Posted on 2011-09-14
13
Medium Priority
?
575 Views
Last Modified: 2013-11-28
I have a button on a form that raises another modal form.  Oddly (and disturbingly) the form that opens also sinks the mouse click.  So, in other words, the sequence of events is:

1) Click button on Form A
2) Button raises Form B
3) Form B also registers a click

That just won't do.  I don't feel like I should have to work around this with mouse events.  What's wrong here?

Mike
0
Comment
Question by:shacho
  • 9
  • 4
13 Comments
 

Author Comment

by:shacho
ID: 36540511
For reference, here is (approximately) the code that raises the form:
DoCmd.OpenForm "MyForm", acNormal, , "ID=111", acFormEdit, acDialog, "blah"

0
 
LVL 75
ID: 36540568

Try removing the acDialog and instead, set the Modal and Popup properties of MyForm to Yes.

DoCmd.OpenForm "MyForm", acNormal, , "ID=111", acFormEdit, , "blah"
0
 
LVL 75
ID: 36540571
"Form B also registers a click"

Also, not exactly sure what you mean by that ?

mx
0
NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

 

Author Comment

by:shacho
ID: 36540720
I click the launch button in Form A, then Form B opens, and if there happens to be a button on B right underneath the mouse cursor, that button also gets pushed.

I have a routine that alters the row source of a control on Form B that runs when the form loads.  Somehow that process is messing things up.  If I block that code, the aforementioned phenomenon does not happen.

0
 
LVL 75

Assisted Solution

by:DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 2000 total points
ID: 36540736
Well ... guess I would have to 'be there' on this one.  But did you try what I suggested above ... removing acDialog  etc.

mx
0
 

Author Comment

by:shacho
ID: 36540738
Strike that.  I got it now.  There's a control that drops down automatically on enter.  It's also the first control.  That dropping down is the cause of the problem.  I think it goes something like this: The list drops momentarily - then the row source is changed.  This cancels the drop, but Access assumes the drop was cancelled by a click so it looks for the location of the mouse cursor and clicks.
0
 

Author Comment

by:shacho
ID: 36540751
Solved with a new understanding (thanks for that yesterday) of Key events.

Private Sub cbxItemType_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyTab Then Me.cbxItemType.DropDown
End Sub

Instead of ...

Private Sub cbxItemType_Enter()
    Me.cbxItemType.DropDown
End Sub
0
 

Author Comment

by:shacho
ID: 36540769
Nope - spoke too soon.  Still haven't worked it out.  More soon.
0
 

Accepted Solution

by:
shacho earned 0 total points
ID: 36540806
I really got it now.  You may remember this from yesterday.

"in the end i made two forms for the child table.  one is just a list with no code.  that one gets embedded as a locked subform, for which only two events exist: got and lost focus. if you click on or navigate to the subform with keys, it shows the real editor (the other form) then pushes the focus on to the next control.  it's soooooooo much easier and clear and reliable this way.  and it loads faster. "

So clicking in (or actually, "into") the subform triggers the launch of the form in question.  The subform is locked so the click "in" the subform appears to be a click "on" it.  In this way, it behaves like a button.  But the click ends up getting heard by the form that gets launched.  I don't know what happens behind the scenes, but somehow I suspect if the subform weren't locked, that click might get ignored by the pop up form.  I dunno.  Anyway, now I need to figure out how to work around this.  Bending Access form navigation behavior to your will sure takes a lot of stamina.

Mike

0
 

Author Comment

by:shacho
ID: 36540817
...and they call this "rapid" application development.
0
 

Author Closing Comment

by:shacho
ID: 36558857
-
0
 
LVL 75
ID: 36561059

Rapid is a Relative term.  At least it's not Rabid !!!

mx
0
 

Author Comment

by:shacho
ID: 36563455
Ha. You should have seen me after trying to troubleshoot this problem for 4 hours...
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

If you need a simple but flexible process for maintaining an audit trail of who created, edited, or deleted data from a table, or multiple tables, and you can do all of your work from within a form, this simple Audit Log will work for you.
Code that checks the QuickBooks schema table for non-updateable fields and then disables those controls on a form so users don't try to update them.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
This lesson discusses how to use a Mainform + Subforms in Microsoft Access to find and enter data for payments on orders. The sample data comes from a custom shop that builds and sells movable storage structures that are delivered to your property. …
Suggested Courses

916 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