[AccessD] Form saves changes to Form Property: Order By

Gary Kjos garykjos at gmail.com
Thu Nov 19 19:27:25 CST 2020


Got this one too.

On Sun, Nov 15, 2020 at 6:41 PM Borge Hansen <pcs.accessd at gmail.com> wrote:
>
> Hi everyone,
> I read with interest Tina's predicament with the Form no longer loading records.
>
> I have a somewhat similar problem with the setting and saving of a
> Form's properties, in this case the "Order By" property on a
> Continuous Form.
>
> Currently using MS Access 365 / Access 2019 !
>
> So for years we have been using the following setup:
> In the header above the row of txtControl controls we have labels with
> the following function on the "On Click" event :
>
> =columnsort([name of txtControl below])
>
> the function is :
> +++++++
> Function ColumnSort(ColumnToBeSorted)
>   'ColumnToBeSorted : Name of txtControl to sort on
>   On Error GoTo Err_ColumnSort_Click
>
>     Dim frm
>     frm = Screen.ActiveForm.Name
>     If IsNull(Forms(frm).Tag) Or Forms(frm).Tag = "" Then Forms(frm).Tag = 0
>     Forms(frm)(ColumnToBeSorted).SetFocus
>
>     If Forms(frm).Tag = 0 Then
>       RunCommand acCmdSortAscending
>       Forms(frm).Tag = 1
>     Else
>       RunCommand acCmdSortDescending
>       Forms(frm).Tag = 0
>     End If
> Exit_ColumnSort_Click:
>     Exit Function
> Err_ColumnSort_Click:
>    MyMsgBox Err.Number & "  " & Err.Description
>    Resume Exit_ColumnSort_Click
> End Function
> ++++++++
>
> When I open a Continuous Form directly from the navigation panel and
> in sequence sort on three or more different columns and then close the
> Form by a right click and close form, the "Order By" parameters are
> saved to the Form's "Order By" property - and not just the most recent
> sort column but all columns having been sorted on, like this :
>
> Order By: [frmPurgeReviveContact].[RWCode],
> [frmPurgeReviveContact].[FullNameSorting] DESC,
> [frmPurgeReviveContact].[UFN]
>
> Strangely, the Form's Tag property change is not saved!
>
> I am pretty sure that previous versions of Access (Access 2003 comes
> to mind) did not have this behaviour.
>
> The expected behavior (at least mine) is for a Form that is opened in
> view mode to close without saving any changes to the Form's properties
> that may have been changed through vba code while in view mode....
>
> I see on https://docs.microsoft.com/en-us/office/vba/api/access.docmd.openform
> that the docmd.openform optional datamode has as its default setting :
> DataMode
> Optional
> AcFormOpenDataMode
> An AcFormOpenDataMode constant that specifies the data entry mode for the form.
> This applies only to forms opened in Form view or Datasheet view. The
> default value is acFormPropertySettings.
>
> And the acFormPropertySettings will save any changes to the Form's properties!
>
> All of our Forms opened from vba code has so far been using a simple
> docmd.OpenForm
>
> We have another continuous Form that people are using constantly to
> filter and sort and the "Order By" parameters are never saved on
> closing this form with a simple docmd.Close
>
> Now, on this particular Form - what is different here - the record
> source keeps changing and the ColumnSort() function here takes as
> parameter the name of the txtControl which is different from the
> underlying control source property referencing the field or column in
> the recordsource query. I don't know if that is what makes the form
> not save the sort parameters on the Form's "Order By" property.
>
> With the first continuous Form that now is a problem the Form is
> opened from a command button's Hyperlink Address property referencing
> the Form and in order for the form not to save the the "Order By" form
> property changes I have had to change the
> docmd.Close
> to
>     DoCmd.Close acForm, "frmPurgeReviveContact", acSaveNo
>
>
> So my question is :
> Did MS change the default value of the AcFormOpenDataMode from one
> older MS Access version to a newer one? Because this behavior is new
> to me.
>
> And is there a way to change this default setting other than now
> having to change all instances of
> docmd.close
> for closing a form to one that specifically says "and don't save any
> changes to the Form's properties that User may have done while working
> on the form"
>
> /borge
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com



-- 
Gary Kjos
garykjos at gmail.com


More information about the AccessD mailing list