[AccessD] Select Multiple records on form

Gustav Brock Gustav at cactus.dk
Mon May 15 11:30:29 CDT 2006


Hi Mark

     With Me(ControlName).FormatConditions
       .Delete
        Cdn = "Fn_SelectedBlock(ID) <> 0"
        With .Add(acExpression, , Cdn)
          .BackColor = 16777164
          .FontBold = True
        End With
     End With

That code looks clunky to me. Did you try changing it to something that specifically Set a FormatCondition object, then adjusts properties BackColor and FontBold of this?

/gustav


>>> markamatte at hotmail.com 15-05-2006 17:41 >>>
In stepping through the code and watching the screen change with each line 
of code I isolated the quirk I had noticed Friday.  When you execute the 
line "With .Add(acExpression, , Cdn)"...the control it is on turns gray for 
about 3 seconds and then changes back...before the next line is executed.  
What would cause this?  The same thing happens as the next 2 lines are 
executed.

Thanks,

Mark


>From: "Mark A Matte" <markamatte at hotmail.com>
>Reply-To: Access Developers discussion and problem 
>solving<accessd at databaseadvisors.com>
>To: accessd at databaseadvisors.com 
>Subject: Re: [AccessD] Select Multiple records on form
>Date: Fri, 12 May 2006 20:13:02 +0000
>
>A.D.,
>
>Thank you very much for the code.  It is acting strange...I think...If I
>click or navigate to a record...all other records are 'grayed' out...and 
>the
>single row is highlighted for about 3 seconds...then the screen is back to
>normal.
>
>I think I'm in the right direction...I just need to select more than
>one(non-sequential), have them stay selected, and do something with the 
>ones
>selected.
>
>Thanks,
>
>Mark
>
> >From: "A.D.TEJPAL" <adtp at hotmail.com>
> >Reply-To: Access Developers discussion and problem
> >solving<accessd at databaseadvisors.com>
> >To: "Access Developers discussion and problem
> >solving"<accessd at databaseadvisors.com>
> >CC: ADT <adtp at airtelbroadband.in>
> >Subject: Re: [AccessD] Select Multiple records on form
> >Date: Sat, 13 May 2006 00:09:27 +0530
> >
> >Mark,
> >
> >     On a continuous form, so long as record selectors are available, you
> >can pick up the selection via form's click event and then apply dynamic
> >conditional formatting so as to highlight only the records covered by
> >current selection. Form's SelTop & SelHeight properties are handy in this
> >context.
> >
> >     Sample code as given below, will ensure that all records currently
> >selected by the user get distinctly highlighted across the full row.
> >
> >     Note - The performance of conditional formatting in Access 2003 is
> >found to be better than that in Access 2000 (Access 2000 file format in
> >both cases).
> >
> >Best wishes,
> >A.D.Tejpal
> >---------------
> >
> >Code in module of continuous form
> >(ID is the name of primary key field)
> >=========================================
> >Private Sub Form_Click()
> >     P_SetFormat_A
> >End Sub
> >----------------------------------------------------------------------------
> >Private Sub Form_Current()
> >     P_SetFormat_A
> >End Sub
> >----------------------------------------------------------------------------
> >Private Function Fn_SelectedBlock(ByVal PkNumber _
> >                                                         As Long) As Long
> >     ' Returns 1 if the record with this PkNumber
> >     ' falls in selected block, otherwise 0
> >     Dim rst As DAO.Recordset
> >     Dim RecNum As Long, InSelection As Long
> >
> >     InSelection = 0  ' Default
> >     Set rst = Me.RecordsetClone
> >     rst.FindFirst "ID = " & PkNumber
> >     If Not rst.NoMatch Then
> >         RecNum = rst.AbsolutePosition + 1
> >         If RecNum >= Me.SelTop And _
> >                                 RecNum <= Me.SelTop + _
> >                                 (Me.SelHeight - 1) Then
> >             InSelection = 1
> >         End If
> >     End If
> >
> >     Fn_SelectedBlock = InSelection
> >
> >     rst.Close
> >     Set rst = Nothing
> >End Function
> >----------------------------------------------------------------------------
> >Public Sub P_SetFormat_A()
> >     ' Sets fresh Conditional Formatting in Detail section
> >     Dim ct As Control
> >
> >     For Each ct In Me.Detail.Controls
> >         P_SetFormat_B ct.Name
> >     Next
> >
> >     Me.Repaint
> >End Sub
> >----------------------------------------------------------------------------
> >Private Sub P_SetFormat_B(ByVal ControlName As String)
> >' Sets fresh Conditional Formatting
> >' (in text box named ControlName)
> >     Dim Cdn As String
> >
> >     On Error Resume Next    ' For controls not suited to
> >                                            ' conditional formatting
> >     With Me(ControlName).FormatConditions
> >         .Delete
> >
> >         Cdn = "Fn_SelectedBlock(ID) <> 0"
> >         With .Add(acExpression, , Cdn)
> >             .BackColor = 16777164
> >             .FontBold = True
> >         End With
> >     End With
> >     On Error GoTo 0
> >End Sub
> >=========================================
> >
> >   ----- Original Message -----
> >   From: Mark A Matte
> >   To: accessd at databaseadvisors.com 
> >   Sent: Friday, May 12, 2006 21:41
> >   Subject: [AccessD] Select Multiple records on form
> >
> >
> >   Hello All,
> >
> >   I'm probably missing something simple here...but...I have a continuous form
> >   in A2K using a NON-updateable recordset.  I would like the user to be able
> >   to select multiple records...and then click a button to do some other stuff.
> >
> >   My issue is how to select multiple records on this form...I'm thinking some
> >   sort of conditional formatting...but not sure.  Any
> >   ideas/suggestions/direction?
> >
> >   Thanks,
> >
> >   Mark A. Matte




More information about the AccessD mailing list