[AccessD] How do I refer to a range of selected records in asubform datasheet?

A.D.Tejpal adtp at airtelmail.in
Thu Mar 5 23:32:47 CST 2009


David,

    My sample db's mentioned below, might be of interest to you:

    (a) Form_SubformAsListBox
    (b) Form_TrackBulkSelectionsInDataSheet
    (c) FormsSelectedBlockInDatasheet

    These are available at Rogers Access Library. Link -
http://www.rogersaccesslibrary.com/forum/forum_topics.asp?FID=45
 
    You could adapt the underlying approach suitably, for your specific needs.
 
Best wishes,
A.D. Tejpal
------------

  ----- Original Message ----- 
  From: David McAfee 
  To: Access Developers discussion and problem solving 
  Sent: Friday, March 06, 2009 02:37
  Subject: [AccessD] How do I refer to a range of selected records in asubform datasheet?


  I have a read only subform in datasheet mode.

  I've switched from using a list box, because the user wanted sorting, column
  width, filtering and a couple of other options.

  With the list box, if the user wanted to update a bunch of records, I would
  do something like this:

  The user select the listbox row(s) then presses a command button.

  Code in the onClick event would perform a task similar to:

  'Inserting records from a listbox (Looping through the listbox)
  If Me.lstTitles.ItemsSelected.Count > 0 Then
      Dim varIndex As Variant
      Dim lRecordsAffected As Long
      Dim Cnn As ADODB.Connection
      Dim Cmd As ADODB.Command
      Set Cnn = New ADODB.Connection
      Set Cnn = CurrentProject.Connection
      For Each varIndex In Me.lstAddrLocOrContact.ItemsSelected 'For every
  item selected in list box
      Set Cmd = New ADODB.Command
           With Cmd
              Set .ActiveConnection = Cnn
                  .CommandType = adCmdStoredProc
                  .CommandText = "stp_001B3_AddContactTitles"
                  .Parameters.Append .CreateParameter("@ctcID", adInteger,
  adParamInput, , Me.strCtcID)
                  '.Parameters.Append .CreateParameter("@addrLocID",
  adInteger, adParamInput, , Me.lstAddrLoc.Column(3, varIndex))
                  .Parameters.Append .CreateParameter("@addrID", adInteger,
  adParamInput, , Me.strAddrID)
                  Set .ActiveConnection = Cnn
                  .Execute lRecordsAffected
              End With
          Set Cmd = Nothing
      Next 'Loop to the next selected item
      Cnn.Close
      Set Cnn = Nothing
  End If

  I know I can reference the form!sbform!PKID but do I have to loop the the
  whole recordset and check if record is selected?

  I'm getting rusty with access. :)

  David


More information about the AccessD mailing list