[AccessD] I used to be young and stupid

Paul Wolstenholme Paul.W at industrialcontrol.co.nz
Sun Jan 16 19:47:44 CST 2022


Stuart,

I don't intend to digress from Arthur's topic here.

Arthur was interested in efficiency.
I would argue that in the long run it is often inefficient to write code
that is hard to maintain.
Keeping the detailed code that relates to a form within that form makes it
easier to maintain.

Future maintenance might include converting a form from DAO to ADO (perhaps
when DAO is too slow), but there are many other reasons to make changes.
In my experience ComboBox.requery does not work with ADO because
Microsoft's code is what it is.

Paul

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

> I never use ADO :)
> Are you saying that control.requery doesn't work with ADO?
> Why not?
> If so, that's yet anothr reason to avoid it :)
>
>
> On 17 Jan 2022 at 12:30, Paul Wolstenholme wrote:
>
> > 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
> > > > > > --
> > >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > https://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>


More information about the AccessD mailing list