Form Query Refresh Problem

IainMc2013

New member
Local time
Today, 09:36
Joined
Apr 1, 2013
Messages
7
I have an access form with tab control pages each with embedded forms.

In one page I have a list of records as a datasheet form with the record identifier field configured as a hyperlink. When I click on this it passes its value to a form field in the form in the following tab page (works without the hyperlink but its a useful way of highlighting which field to click) which is a display/edit form of the details of the individual record. The Subroutine which does this sets the focus on this field it is passing the value to on the other form and the 'On Got Focus' event in that triggers the query that fills the editor form.

When I click back on the following tab to select another record to view/edit, the identifier value of the other record is passed to the other form but the data displayed in the rest form doesn't change. I understand this is because the field with the 'On Got Focus' never lost focus and so the query function was not called. To correct this I tried adding the same function call to the 'On Change' event however this does not work (the field is a text box set to 'locked' if that is relevant).

I can get the form to do a new query properly if I click on a different field in the form before going back to the list tab or (as this is removing the focus allowing the On Got Focus to work again) if I click on a button to select a different record (which just takes me back to the list form).

Is there any way I can get this to work without having to manually remove the focus from the problem field? I have tried setting its On Got Focus event to move the focus to another field after the query function call however this prevents the Setfocus line in the code in the previous form from working. Here is a snippet of my code below.


This code is for the list form and passes a value to the editing form:

Private Sub SalesID_Click()

Forms!Mainform.Requery
Forms!Mainform!Sales_Admin_Form!Sales_Admin_SalesID.Value = SalesID.Value
Forms!Mainform!Sales_Admin_Form.SetFocus
Forms!Mainform!Sales_Admin_Form!Sales_Admin_SalesID.SetFocus

End Sub
This code is from the editing form:

Private Sub Sales_Admin_SalesID_Change()


If Sales_Admin_SalesID.Value <> "" Then


Call AdminShowContactOfferDetails(Sales_Admin_SalesID.Value)


Else

End If

End Sub


Private Sub Sales_Admin_SalesID_GotFocus()


If Sales_Admin_SalesID.Value <> "" Then


Call AdminShowContactOfferDetails(Sales_Admin_SalesID.Value)


Else

End If

End Sub
 
Last edited:
Just having a quick look as, with out an example i find it difficult to reproduce the error .
As a user like yourself my understanding is than a Form requery updates the form not the record. If you wish to force the record to be save on change you could try the following
If Me.Dirty Then Me.Dirty = False
if no change in data then nothing happens .
Hope this is of some use
 

Users who are viewing this thread

Back
Top Bottom