Solved

Switch Focus

Posted on 2013-01-13
6
204 Views
Last Modified: 2013-01-22
I have the focus on a form locked onto a graph and do not seem to be able to move it to any other field on the form via vba.

Very strange!

Any help welcome.
0
Comment
Question by:SweetingA
  • 3
  • 2
6 Comments
 
LVL 29

Accepted Solution

by:
IrogSinta earned 500 total points
ID: 38772724
How are you trying to switch focus? Have you tried something like:
Me.NameOfTextbox.SetFocus

If so, you need to provide more information.
0
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 38772802
With the focus on a graph, you may have to us the parent.  I've not tried that before, but depending on where the code is that is executing this, you may need to try something like:

me.parent.setfocus

or possibly

Forms!yourFormName.Form.setfocus

or

Forms!yourFormName.Form.SomeControlName.Setfocus
0
 

Author Comment

by:SweetingA
ID: 38772938
I have tried....

Me.txtboxname.SetFocus - no luck but no error
Forms!myform.txtboxname.SetFocus - no luck but no error
Forms!myform.Form.txtboxname.SetFocus - no luck but no error
Me.Parent.SetFocus - no luck, error - invalid reference to the parent property

Regards
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 29

Expert Comment

by:IrogSinta
ID: 38772950
On what event do you have your code? Is txtboxname the actual name of the textbox control?
0
 

Author Comment

by:SweetingA
ID: 38772992
There is a lot of code running off the back of an after update event, please see code below....

You will have to excuse my clumsy programming as i am no access programmer.

The problem started when i wanted to display a graph, to get the graph to display i needed to double click it so i simulated the mouse click.  When i do that it works but it leaves the graph data table on show - to get rid of that i need to click into any other box which is why i was trying to change the focus to a text box and click on it.

Private Sub Measure_AfterUpdate()
    Dim a As String
    Dim b As String
    Dim c As String
    Dim d As String
    Dim e As String
    Me.Unit.Requery
    Me.[Sort Criteria] = Me.Year & Me.Period & Me.Measure
    Me.[Sort Criteria 2] = Me.Year & Me.Measure
    Me.[Sort Criteria 3] = Me.Year - 1 & Me.Period & Me.Measure
    a = DLookup("[Unit]", "tbl_PDM_TargetProjects", "[Measure]=Forms!frm_PDM_Results.Measure")
    b = DCount("[Sort Criteria]", "tbl_PDM_Results", "[Sort Criteria] = Forms!frm_PDM_Results.[Sort Criteria]")
    c = DCount("[Result]", "tbl_PDM_Results", "[Sort Criteria]=Forms!frm_PDM_Results.[Sort Criteria 3]")
    If c = 1 Then
        d = DLookup("[Result]", "tbl_PDM_Results", "[Sort Criteria]=Forms!frm_PDM_Results.[Sort Criteria 3]")
        Me.PYR = d
        strSQL = "UPDATE tbl_PDM_Results" & " SET tbl_PDM_Results.[Previous Year Result] = " & d & " WHERE [Sort Criteria] = Forms!frm_PDM_Results.[Sort Criteria 3]"
        With DoCmd
            .SetWarnings False
            .RunSQL strSQL
            .SetWarnings True
        End With
    End If
    If b = 0 Then
        If IsNull(Measure) Then
            MsgBox ("Enter Measure")
            Me.Result.Locked = True
            Me.Measure.SetFocus
        Else:
            Me.Unit = a
            Me.Result.Locked = False
            CurrentDb.Execute "delete * from tbl_PDM_Results WHERE [Result] is NULL"
            Me.frm_PDM_Results_subform.Visible = True
            Me.SubformLabel.Visible = True
            Me.Graph1.Visible = True
            Me.Graph1.SetFocus
            Call LeftClick
            Call LeftClick
            Me.Result.SetFocus
            Call LeftClick
        End If
    Else:
        e = MsgBox("Record exists, do you want to update an existing record?", vbYesNo)
        If e = vbNo Then
            Me.Year = Null
            Me.Period = Null
            Me.Project_Category = Null
            Me.Measure = Null
            Me.Unit = Null
            Me.Sort_Criteria = Null
            Me.[Sort Criteria] = Null
            Me.[Sort Criteria 2] = Null
            Me.[Sort Criteria 3] = Null
            Me.Year.SetFocus
        ElseIf (e = vbYes) Then
            With Me.RecordsetClone
            .FindFirst "[Sort Criteria]='" & Me.[Sort Criteria] & "'"
            If Not .NoMatch Then
                Me.Bookmark = .Bookmark
            Else
                MsgBox "Record not found"
            End If
            End With
            CurrentDb.Execute "delete * from tbl_PDM_Results WHERE [Result] is NULL"
            Me.frm_PDM_Results_subform.Visible = True
            Me.SubformLabel.Visible = True
            Me.Graph1.Visible = True
            Me.Graph1.SetFocus
            Call LeftClick
            Call LeftClick
            Me.Result.SetFocus
            Call LeftClick
        End If
    End If
End Sub

Thanks
0
 

Author Closing Comment

by:SweetingA
ID: 38807804
Simple but correct, other issues at play here, focus seems to be switching to item directly under position of yes/no buttons on message box
0

Featured Post

Free Gift Card with Acronis Backup Purchase!

Backup any data in any location: local and remote systems, physical and virtual servers, private and public clouds, Macs and PCs, tablets and mobile devices, & more! For limited time only, buy any Acronis backup products and get a FREE Amazon/Best Buy gift card worth up to $200!

Join & Write a Comment

Introduction When developing Access applications, often we need to know whether an object exists.  This article presents a quick and reliable routine to determine if an object exists without that object being opened. If you wanted to inspect/ite…
In a multiple monitor setup, if you don't want to use AutoCenter to position your popup forms, you have a problem: where will they appear?  Sometimes you may have an additional problem: where the devil did they go?  If you last had a popup form open…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

708 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

13 Experts available now in Live!

Get 1:1 Help Now