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:
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:
This code is from 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
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: