---Soumis par Dev Ashish---
Déterminer quel enregistrements sont choisis, en vue "données".
(Q) Je désire entreprendre des procédures selon le choix des enregistrements actuellement choisis par l'utilisateur qui se trouve en un mode de visionnent dit datasheet view (form/subform). Mais comment déterminer quels enregistrements sont choisis?
(A) Depuis Access 95, les propriétés SelTop, SelWidth, SelHeight, et SelLeft sont maintenant disponibles pour cet usage, en particulier, ici SelTop et SelHeight.
Malheureusement, ces propriétés ne sont valides que si les données possèdent le focus. On ne peut penser à cliquer sur un bouton, le fait de positionner le curseur de souris sur le bouton et de le cliquer invaliderait l'information contenue dans les donnés précédemment "choisies". Un solution est donc d'utiliser un Timer sous le formulaire, ou sur un toolbar fait-maison.
Comme exemple, utilisant la procédure événementielle OnTimer, nous imprimerons les enregistrements choisis (en utilisant un état qu'on suppose prédéfini).
' Créer une variable ayantla forme comme étedue.
Dim mfPrint As Boolean
Put following code in Form's Open Event
Private Sub Form_Open(Cancel As Integer)
mfPrint = False
End Sub
Assigner la valeur 5000 à la propriété TimerInterval du formulaire, puis
copier-coller le code suivant dans la procédure événementielle
'************* Code Start ************** ' Private Sub Form_Timer() Dim i As Long Dim strSQL As String Dim loqd As QueryDef If Me.SelHeight = 0 Or mfPrint Then Exit Sub strSQL = "SELECT * FROM [" & Me.RecordSource _ & "] WHERE " With Me.RecordsetClone .MoveFirst .Move Me.SelTop - 1 For i = 1 To Me.SelHeight strSQL = strSQL & "ProductID = " & _ ![ProductID] & _ " OR " .MoveNext Next i strSQL = Left$(strSQL, Len(strSQL) - 3) If MsgBox("Prêt pour imprimer maintenant?", _ vbQuestion + vbYesNo, _ "Confirmation requise") = vbYes Then Set loqd = CurrentDb.QueryDefs("qryProducts") loqd.SQL = strSQL loqd.Close 'DoCmd.OpenReport "SomeReport", acViewPreview mfPrint = True End If End With Set loqd = Nothing End Sub '**************** Code End *****************