Group:  Microsoft Access ยป microsoft.public.access.formscoding
Thread: Orderby doesnt go away

Geek News

Orderby doesnt go away
Ryan 11/19/2008 8:06:01 PM
I have a form with this on load event. "AllBalancesByFCandDBPD" is a
crosstab query.

Private Sub Form_Load()
Me.OrderBy = ""
Me.OrderByOn = False
Dim rst As Recordset
Dim db As Database
Dim q As QueryDef
Dim i As Integer
Dim j As Integer
Set db = CurrentDb
Set qdf = db.QueryDefs("AllBalancesByFCandDBPD")
For Each prm In qdf.Parameters
prm.Value = Eval(prm.Name)
Next prm
Set rst = qdf.OpenRecordset()
rst.MoveFirst
j = -1
i = 0
For i = 0 To rst.Fields.Count - 1
If rst.Fields(i).Name Like "*Financial Class" Then GoTo skip_it
j = j + 1
Select Case j
Case 0
Me.lbl1.Caption = rst.Fields(i).Name
Me.frmFCDBTotal.ControlSource = rst.Fields(i).Name
Case 1
Me.lbl2.Caption = rst.Fields(i).Name
Me.DB1.ControlSource = rst.Fields(i).Name
Case 2
Me.lbl3.Caption = rst.Fields(i).Name
Me.DB2.ControlSource = rst.Fields(i).Name
Case 3
Me.lbl4.Caption = rst.Fields(i).Name
Me.DB3.ControlSource = rst.Fields(i).Name
End Select
skip_it:
Next i
rst.Close
Set rst = Nothing
If Len(Me.lbl3.Caption) < 2 Then
Me.lbl3.Visible = False
Me.DB2.Visible = False
End If
If Len(Me.lbl4.Caption) < 2 Then
Me.lbl4.Visible = False
Me.DB3.Visible = False
End If
End Sub

Since a column my exist one time and not the next time, if a user right
clicks and sorts a-z or z-a on a column named C28, and then closes and opens
the form again and the results dont include a column named C28 I get this
error.

Run-time error '3070'
The Microsoft Jet database engine does not recognize " as a valid field name
or expression.

If I go into the form in design view, I see that the Order By propert is set
to AllBalancesByFCandDBPD.C28 DESC
No matter how I try, the only way to get rid of the value in the Order By
property is to open the form in design view and manually delete it. I have
tried these options
OnOpen and OnLoad events
Me.Orderby = ""
Me.Orderbyon = False
AND
Me.Form.Orderby = ""
Me.Form.Orderbyon = False
AND
Me.ControlSource.Oderby = ""
Me.ControlSource.Oderbyon = False

Please help!!!!
Re: Orderby doesnt go away
"tina" <nospam[ at ]address.com> 11/20/2008 3:58:29 AM
[Quoted Text]
> Me.OrderBy = ""
> Me.OrderByOn = False

hmm, have you tried setting the above code in the form's Unload event or
Close event? or instead you might remove the various Close options from the
form's Title bar and Menu bar, and running the following code from a "Close"
command button on the form, as

DoCmd.Close , , acSaveNo

the above command has always worked for me, to avoid having changes made to
the form itself (not data) by the user be saved from time to the next. but i
did have an op tell me recently in a post that it didn't work for his
situation, though i can't recall the details.

hth


"Ryan" <Ryan[ at ]discussions.microsoft.com> wrote in message
news:803F44C7-0056-4106-A847-63E77EEC816E[ at ]microsoft.com...
> I have a form with this on load event. "AllBalancesByFCandDBPD" is a
> crosstab query.
>
> Private Sub Form_Load()
> Me.OrderBy = ""
> Me.OrderByOn = False
> Dim rst As Recordset
> Dim db As Database
> Dim q As QueryDef
> Dim i As Integer
> Dim j As Integer
> Set db = CurrentDb
> Set qdf = db.QueryDefs("AllBalancesByFCandDBPD")
> For Each prm In qdf.Parameters
> prm.Value = Eval(prm.Name)
> Next prm
> Set rst = qdf.OpenRecordset()
> rst.MoveFirst
> j = -1
> i = 0
> For i = 0 To rst.Fields.Count - 1
> If rst.Fields(i).Name Like "*Financial Class" Then GoTo skip_it
> j = j + 1
> Select Case j
> Case 0
> Me.lbl1.Caption = rst.Fields(i).Name
> Me.frmFCDBTotal.ControlSource = rst.Fields(i).Name
> Case 1
> Me.lbl2.Caption = rst.Fields(i).Name
> Me.DB1.ControlSource = rst.Fields(i).Name
> Case 2
> Me.lbl3.Caption = rst.Fields(i).Name
> Me.DB2.ControlSource = rst.Fields(i).Name
> Case 3
> Me.lbl4.Caption = rst.Fields(i).Name
> Me.DB3.ControlSource = rst.Fields(i).Name
> End Select
> skip_it:
> Next i
> rst.Close
> Set rst = Nothing
> If Len(Me.lbl3.Caption) < 2 Then
> Me.lbl3.Visible = False
> Me.DB2.Visible = False
> End If
> If Len(Me.lbl4.Caption) < 2 Then
> Me.lbl4.Visible = False
> Me.DB3.Visible = False
> End If
> End Sub
>
> Since a column my exist one time and not the next time, if a user right
> clicks and sorts a-z or z-a on a column named C28, and then closes and
opens
> the form again and the results dont include a column named C28 I get this
> error.
>
> Run-time error '3070'
> The Microsoft Jet database engine does not recognize " as a valid field
name
> or expression.
>
> If I go into the form in design view, I see that the Order By propert is
set
> to AllBalancesByFCandDBPD.C28 DESC
> No matter how I try, the only way to get rid of the value in the Order By
> property is to open the form in design view and manually delete it. I
have
> tried these options
> OnOpen and OnLoad events
> Me.Orderby = ""
> Me.Orderbyon = False
> AND
> Me.Form.Orderby = ""
> Me.Form.Orderbyon = False
> AND
> Me.ControlSource.Oderby = ""
> Me.ControlSource.Oderbyon = False
>
> Please help!!!!


Re: Orderby doesnt go away
Ryan 11/20/2008 3:06:03 PM
I have tried the on unload and on close event, but those didnt work either.
Your suggestion with using a close button is how Im currently handeling the
situation, however, I had users that would still want to close access using
the applications close button while the form is still open. I have disabled
the application close for now, but it just doesnt make sense that I cant use
the on open, on load, on unload, or on close event to reset the orderby
property to nothing. I will give the acSaveNo a try and let you know how
that works.
--
Please remember to mark this post as answered if this solves your problem.


"tina" wrote:

[Quoted Text]
> > Me.OrderBy = ""
> > Me.OrderByOn = False
>
> hmm, have you tried setting the above code in the form's Unload event or
> Close event? or instead you might remove the various Close options from the
> form's Title bar and Menu bar, and running the following code from a "Close"
> command button on the form, as
>
> DoCmd.Close , , acSaveNo
>
> the above command has always worked for me, to avoid having changes made to
> the form itself (not data) by the user be saved from time to the next. but i
> did have an op tell me recently in a post that it didn't work for his
> situation, though i can't recall the details.
>
> hth
>
>
> "Ryan" <Ryan[ at ]discussions.microsoft.com> wrote in message
> news:803F44C7-0056-4106-A847-63E77EEC816E[ at ]microsoft.com...
> > I have a form with this on load event. "AllBalancesByFCandDBPD" is a
> > crosstab query.
> >
> > Private Sub Form_Load()
> > Me.OrderBy = ""
> > Me.OrderByOn = False
> > Dim rst As Recordset
> > Dim db As Database
> > Dim q As QueryDef
> > Dim i As Integer
> > Dim j As Integer
> > Set db = CurrentDb
> > Set qdf = db.QueryDefs("AllBalancesByFCandDBPD")
> > For Each prm In qdf.Parameters
> > prm.Value = Eval(prm.Name)
> > Next prm
> > Set rst = qdf.OpenRecordset()
> > rst.MoveFirst
> > j = -1
> > i = 0
> > For i = 0 To rst.Fields.Count - 1
> > If rst.Fields(i).Name Like "*Financial Class" Then GoTo skip_it
> > j = j + 1
> > Select Case j
> > Case 0
> > Me.lbl1.Caption = rst.Fields(i).Name
> > Me.frmFCDBTotal.ControlSource = rst.Fields(i).Name
> > Case 1
> > Me.lbl2.Caption = rst.Fields(i).Name
> > Me.DB1.ControlSource = rst.Fields(i).Name
> > Case 2
> > Me.lbl3.Caption = rst.Fields(i).Name
> > Me.DB2.ControlSource = rst.Fields(i).Name
> > Case 3
> > Me.lbl4.Caption = rst.Fields(i).Name
> > Me.DB3.ControlSource = rst.Fields(i).Name
> > End Select
> > skip_it:
> > Next i
> > rst.Close
> > Set rst = Nothing
> > If Len(Me.lbl3.Caption) < 2 Then
> > Me.lbl3.Visible = False
> > Me.DB2.Visible = False
> > End If
> > If Len(Me.lbl4.Caption) < 2 Then
> > Me.lbl4.Visible = False
> > Me.DB3.Visible = False
> > End If
> > End Sub
> >
> > Since a column my exist one time and not the next time, if a user right
> > clicks and sorts a-z or z-a on a column named C28, and then closes and
> opens
> > the form again and the results dont include a column named C28 I get this
> > error.
> >
> > Run-time error '3070'
> > The Microsoft Jet database engine does not recognize " as a valid field
> name
> > or expression.
> >
> > If I go into the form in design view, I see that the Order By propert is
> set
> > to AllBalancesByFCandDBPD.C28 DESC
> > No matter how I try, the only way to get rid of the value in the Order By
> > property is to open the form in design view and manually delete it. I
> have
> > tried these options
> > OnOpen and OnLoad events
> > Me.Orderby = ""
> > Me.Orderbyon = False
> > AND
> > Me.Form.Orderby = ""
> > Me.Form.Orderbyon = False
> > AND
> > Me.ControlSource.Oderby = ""
> > Me.ControlSource.Oderbyon = False
> >
> > Please help!!!!
>
>
>
RE: Orderby doesnt go away
Ryan 11/20/2008 8:16:19 PM
After further research, I made some progress. If I add a button and set its
on click event to

Me.OrderBy = ""
Me.OrderByOn = True
DoCmd.Close

then the OrderBy will go away. This is the only way I can get it to work,
it still will not work in the OnUnload, OnClose, OnOpen, or OnLoad events of
the form. Any suggestions???
--
Please remember to mark this post as answered if this solves your problem.


"Ryan" wrote:

[Quoted Text]
> I have a form with this on load event. "AllBalancesByFCandDBPD" is a
> crosstab query.
>
> Private Sub Form_Load()
> Me.OrderBy = ""
> Me.OrderByOn = False
> Dim rst As Recordset
> Dim db As Database
> Dim q As QueryDef
> Dim i As Integer
> Dim j As Integer
> Set db = CurrentDb
> Set qdf = db.QueryDefs("AllBalancesByFCandDBPD")
> For Each prm In qdf.Parameters
> prm.Value = Eval(prm.Name)
> Next prm
> Set rst = qdf.OpenRecordset()
> rst.MoveFirst
> j = -1
> i = 0
> For i = 0 To rst.Fields.Count - 1
> If rst.Fields(i).Name Like "*Financial Class" Then GoTo skip_it
> j = j + 1
> Select Case j
> Case 0
> Me.lbl1.Caption = rst.Fields(i).Name
> Me.frmFCDBTotal.ControlSource = rst.Fields(i).Name
> Case 1
> Me.lbl2.Caption = rst.Fields(i).Name
> Me.DB1.ControlSource = rst.Fields(i).Name
> Case 2
> Me.lbl3.Caption = rst.Fields(i).Name
> Me.DB2.ControlSource = rst.Fields(i).Name
> Case 3
> Me.lbl4.Caption = rst.Fields(i).Name
> Me.DB3.ControlSource = rst.Fields(i).Name
> End Select
> skip_it:
> Next i
> rst.Close
> Set rst = Nothing
> If Len(Me.lbl3.Caption) < 2 Then
> Me.lbl3.Visible = False
> Me.DB2.Visible = False
> End If
> If Len(Me.lbl4.Caption) < 2 Then
> Me.lbl4.Visible = False
> Me.DB3.Visible = False
> End If
> End Sub
>
> Since a column my exist one time and not the next time, if a user right
> clicks and sorts a-z or z-a on a column named C28, and then closes and opens
> the form again and the results dont include a column named C28 I get this
> error.
>
> Run-time error '3070'
> The Microsoft Jet database engine does not recognize " as a valid field name
> or expression.
>
> If I go into the form in design view, I see that the Order By propert is set
> to AllBalancesByFCandDBPD.C28 DESC
> No matter how I try, the only way to get rid of the value in the Order By
> property is to open the form in design view and manually delete it. I have
> tried these options
> OnOpen and OnLoad events
> Me.Orderby = ""
> Me.Orderbyon = False
> AND
> Me.Form.Orderby = ""
> Me.Form.Orderbyon = False
> AND
> Me.ControlSource.Oderby = ""
> Me.ControlSource.Oderbyon = False
>
> Please help!!!!
Re: Orderby doesnt go away
"tina" <nospam[ at ]address.com> 11/21/2008 3:51:14 AM
i should have asked you before: if you're using A2000 or newer, did you
turn OFF the Name Autocorrect setting when you created this database? if
not, suggest you open a new blank db, turn off Name Autocorrect from Tools |
Options | General tab. then compact the db. next, import all the objects
from your current db into the new one, then compact again. this is a good
move, even if it doesn't fix your form problem. (for more information, see
http://allenbrowne.com/bug-03.html.) to get rid of the form problem
entirely, you may have to build the form from scratch in the new db.

other than that, if you have users who want to close Access with one button
click, rather than closing the form and then Access, suggest you add a
command button to the form to quit the application. call the procedure that
runs on the Close button, and then add

Application.Quit acQuitSaveNone

hth


"Ryan" <Ryan[ at ]discussions.microsoft.com> wrote in message
news:34E3C4C6-A88D-40F0-A492-15EBB3EBCA91[ at ]microsoft.com...
[Quoted Text]
> After further research, I made some progress. If I add a button and set
its
> on click event to
>
> Me.OrderBy = ""
> Me.OrderByOn = True
> DoCmd.Close
>
> then the OrderBy will go away. This is the only way I can get it to work,
> it still will not work in the OnUnload, OnClose, OnOpen, or OnLoad events
of
> the form. Any suggestions???
> --
> Please remember to mark this post as answered if this solves your problem.
>
>
> "Ryan" wrote:
>
> > I have a form with this on load event. "AllBalancesByFCandDBPD" is a
> > crosstab query.
> >
> > Private Sub Form_Load()
> > Me.OrderBy = ""
> > Me.OrderByOn = False
> > Dim rst As Recordset
> > Dim db As Database
> > Dim q As QueryDef
> > Dim i As Integer
> > Dim j As Integer
> > Set db = CurrentDb
> > Set qdf = db.QueryDefs("AllBalancesByFCandDBPD")
> > For Each prm In qdf.Parameters
> > prm.Value = Eval(prm.Name)
> > Next prm
> > Set rst = qdf.OpenRecordset()
> > rst.MoveFirst
> > j = -1
> > i = 0
> > For i = 0 To rst.Fields.Count - 1
> > If rst.Fields(i).Name Like "*Financial Class" Then GoTo skip_it
> > j = j + 1
> > Select Case j
> > Case 0
> > Me.lbl1.Caption = rst.Fields(i).Name
> > Me.frmFCDBTotal.ControlSource = rst.Fields(i).Name
> > Case 1
> > Me.lbl2.Caption = rst.Fields(i).Name
> > Me.DB1.ControlSource = rst.Fields(i).Name
> > Case 2
> > Me.lbl3.Caption = rst.Fields(i).Name
> > Me.DB2.ControlSource = rst.Fields(i).Name
> > Case 3
> > Me.lbl4.Caption = rst.Fields(i).Name
> > Me.DB3.ControlSource = rst.Fields(i).Name
> > End Select
> > skip_it:
> > Next i
> > rst.Close
> > Set rst = Nothing
> > If Len(Me.lbl3.Caption) < 2 Then
> > Me.lbl3.Visible = False
> > Me.DB2.Visible = False
> > End If
> > If Len(Me.lbl4.Caption) < 2 Then
> > Me.lbl4.Visible = False
> > Me.DB3.Visible = False
> > End If
> > End Sub
> >
> > Since a column my exist one time and not the next time, if a user right
> > clicks and sorts a-z or z-a on a column named C28, and then closes and
opens
> > the form again and the results dont include a column named C28 I get
this
> > error.
> >
> > Run-time error '3070'
> > The Microsoft Jet database engine does not recognize " as a valid field
name
> > or expression.
> >
> > If I go into the form in design view, I see that the Order By propert is
set
> > to AllBalancesByFCandDBPD.C28 DESC
> > No matter how I try, the only way to get rid of the value in the Order
By
> > property is to open the form in design view and manually delete it. I
have
> > tried these options
> > OnOpen and OnLoad events
> > Me.Orderby = ""
> > Me.Orderbyon = False
> > AND
> > Me.Form.Orderby = ""
> > Me.Form.Orderbyon = False
> > AND
> > Me.ControlSource.Oderby = ""
> > Me.ControlSource.Oderbyon = False
> >
> > Please help!!!!


Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net