[AccessD] I used to be young and stupid

Paul Wolstenholme Paul.W at industrialcontrol.co.nz
Sun Jan 16 17:30:11 CST 2022


Stuart,

Your function
Function RequeryComboboxes(frm As Form) As Long

might be fine if each combo has a DAO recordsource
but it would not work on a form where combo boxes are connected to an ADO
recordset.
In that case I think you would need code that is specific to the form in
question - and the best place for that code is in that form.

More than once I've changed a form from DAO to ADO to improve its speed.
It would be a hard process if code in other forms became incompatible.

Paul

On Mon, 17 Jan 2022 at 11:51, Stuart McLachlan <stuart at lexacorp.com.pg>
wrote:

> Not more efficient, but probably cleaner and generic.
> A public funrction in a module.
>
> Function RequeryComboboxes(frm As Form) As Long
>     Dim ctl As Control
>     For Each ctl In frm.Controls
>         If ctl.ControlType = acComboBox Then
>             ctl.Requery
>         End If
>     Next
> End Function
>
> Call from inside the form:
> RequeryComboBoxes Me
> or from elsewhere
> RequeryComboxes Froms("frmSomeformName")
>
>
>
>
> On 17 Jan 2022 at 10:24, Paul Wolstenholme wrote:
>
> > My personal preference would be to write a public function in the form
> > that requeries each of the combo boxes using Me.CompanyID_cmbx.Requery
> > ...
> >
> > I can call the function from another form if I need to, but I find it
> > best to keep those calls to higher level concepts (refresh form data)
> > rather than calling for each individual control to be updated.
> >
> > In this way I can change details within the form without too much
> > concern for how other forms relate to it.  As long as the public
> > function still works, the interaction between the forms will probably
> > be unaffected by my changes.
> >
> > Paul
> >
> >
> > On Sun, 16 Jan 2022 at 15:12, Rocky Smolin <rockysmolin2 at gmail.com>
> > wrote:
> >
> > > Additionally, "a good program is one that works". No one ever reads
> > > your code.
> > >
> > > r
> > >
> > > On Sat, Jan 15, 2022 at 2:47 PM Arthur Fuller
> > > <fuller.artful at gmail.com> wrote:
> > >
> > > > One thing has changed: now I'm old.
> > > >
> > > > I'm working on an app that I began 17 years ago and have revised
> > > > several times as legal requirements, functional requirements and
> > > > UI fashions have evolved. while wandering through the ancient
> > > > code, I came across this. <snippet> If
> > > > FormIsOpen("AssessID_Data_LC_Frm") Then
> > > >     Forms!AssessID_Data_LC_frm!CompanyID_cmbx.Requery
> > > >     Forms!AssessID_Data_LC_frm!ProjectID_cmbx.Requery
> > > >     Forms!AssessID_Data_LC_frm!CompanyID.Requery
> > > >     Forms!AssessID_Data_LC_frm!ProjectID.Requery
> > > >     Forms!AssessID_Data_LC_frm!LocationID.Requery
> > > > End If
> > > > </snippet>
> > > >
> > > > I wonder whether there is a more efficient way to do this, such as
> > > setting
> > > > a reference to the form, and for that matter just re-querying the
> > > > form instead of its controls individually.
> > > >
> > > > --
> > > > Arthur
> > > > --
>


More information about the AccessD mailing list