Ordre de sélection dans un formulaire Access

Résolu
Rrominet Messages postés 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014 - 27 nov. 2007 à 12:12
Rrominet Messages postés 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014 - 27 nov. 2007 à 16:05
Bonjour,

Je travaille actuellement sur une appli développée en Access 2003.
J'ai un formulaire en mode "Feuille de données".

Je peux faire des sélections de plusieurs lignes avec la touche [MAJ] de haut en bas ou de bas en haut.
Je peux ensuite récupérer ma sélection avec les attributs SelTop et SelHeight de mon formulaire.

En revanche, je ne sais pas comment me placer (via une boucle) sur chaque enregistrement sélectionné.

En effet, quand je fais :
                For i = Me.SelHeight To 1 Step -1
                    Call SupprimeCetteLigne(tabEMC(i))
                    Me.SelTop = Me.SelTop + 1
                Next i
...ça fonctionne, mais uniquement lorsque je fais une sélection de haut en bas. Si je la fait de bas en haut, ça me supprime les enregistrements du dessous et non ceux de ma sélection (A cause de mon Me.SelTop = Me.SelTop + 1.

Quelqu'un aurait-il une astuce pour éviter cela ?

Merci d'avance ;-)

3 réponses

Rrominet Messages postés 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014 1
27 nov. 2007 à 16:05
Finalement, c'est résolu, et plutôt facilement.

Voici ma solution :
                Me.Recordset.AbsolutePosition = Me.SelTop - 1
                For i = 1 To Me.SelHeight
                     Call SupprimeCetteLigne(tabEMC(i))
                Next i

Apparemment il semblerait que ça fonctionne dans tous les cas de figure...
3
DEPH007 Messages postés 2 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 27 novembre 2007
27 nov. 2007 à 14:47
Bonjour,

Une idée (non testée), trouvée dans l'aide :

Les propriétés SelHeight et SelWidth déterminent la position du coin inférieur droit du rectangle de sélection. Les valeurs des propriétés SelTop et SelLeft déterminent le coin supérieur gauche du rectangle de sélection.

Grâce à ces propriétés, tu pourrais déterminer le sens de la sélection, et faire -1 ou +1 dans la boucle, selon le sens ?
Phil.
0
Rrominet Messages postés 133 Date d'inscription lundi 26 janvier 2009 Statut Membre Dernière intervention 24 novembre 2014 1
27 nov. 2007 à 16:02
Merci pour ta participation mais malheureusement, dans les 2 cas, les 4 propriétés ont la même valeur...

Le truc que j'ai remarqué c'est que le curseur se place sur le premier enregistrement lors d'une sélection de haut en bas et sur le dernier enregistrement lors de la sélection de bas en haut, d'où mon problème...

Je vais sinon essayer de faire autrement en parcourant le RecordSet de mon formulaire sur "Me.SelTop" enregistrements, puis effectuer ma suppression sur "Me.SelWidth" enregistrements.

Ca devrait peut-être passer...
0
Rejoignez-nous