Mark A Matte
markamatte at hotmail.com
Fri May 12 15:13:02 CDT 2006
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 >-- >AccessD mailing list >AccessD at databaseadvisors.com >http://databaseadvisors.com/mailman/listinfo/accessd >Website: http://www.databaseadvisors.com