Form.Seltop not selecting top most record
A followup to this question: Moving records from one table to another I have a subform attached to a form. On highlighting a form and clicking something else (exit), it sends the number of rows highlighted to the main form via text box control. Set frm = Forms!Form.[subform_subform].Form Set rst = frm.RecordsetClone recordStart = frm.SelTop - 1 recordEnd = recordStart + Me.SH - 1 Debug.Print Me.SH Debug.Print recordStart Debug.Print recordEnd Where Me.SH is the number of rows selected. (Using http://www.tek-tips.com/viewthread.cfm?qid=1499722) When selecting the rows from top to bottom, I get as an output for recordStart the top row that I have selected. But when I select the rows from bottom to top, I instead get the last row for recordStart. Is there a way to prevent this? The second link (as well as https://msdn.microsoft.com/en-us/library/office/ff194148.aspx) above implies that this should not happen. Is there a workaround for this?
It's you that label the records "start" and "end". To Access there is a "Top" record selected and a "height" (count) of records selected no matter how the user (or your code) selected the records. If you wish a different sequence of selected records, apply the needed sorting first, then select the records.
I believe I have figured it out, and I believe this is a result of the way form selections work: On exit, parametres such as .SelHeight are lost, as expected. .SelTop, however, works differently. Say [Subform] is in datasheet view, and is a [Subform] of [Form]: Set frm = Forms![Form].[Subform].Form Debug.Print frm.SelTop If you were to select the records from top to bottom, then frm.SelTop will obviously be your first selected form. But if you were to select from bottom to top, then frm.SelTop will be your bottom row, because it was the first selected row. That is, whatever you click first will be frm.SelTop, because for whatever reason Access passes that on as frm.SelTop. One way to solve this, besides using a bunch of public variables (Moving records from one table to another) is to create a textbox control for .SelTop, and pass the .SelTop value to your textbox control.
creating a server project in vb6 and ms-access
MS Access Dropdown List/Combo Box
How to communicate between two instances of open MDB with same form?
In Access 2007 CSV Export: Disable Scientific Notation
How do you format date fields of a Union Query in MS Access?
Porting MS Access application
automatically query and convert access db table to excel using vbs
Preserving linked tables for Access DBs in same folder when the folder changes
Disable warning: You copied a large amount of data onto the clipboard
How to get the name of Constraint?
Specify mdw file in embedded connection string to another Jet mdb: possible?
Validation Problem in vba text box
suppress write conflict message in Access VBA
How do I use a Checkbox on a form to add a record into a subform in Microsoft Office Access?
How to refresh linked tables in an Access mdb when ODBC changes
Query by month from date field