ACCESS Effacer par code une sélection d'enr

MC -  
random Messages postés 1612 Statut Membre -
Bonjour,
je souhaite, dans une base de données Access 2002, effacer par code plusieurs enregistrements sélectionnés par l'utilisateur grâce au sélecteur d'enregistrements dans un formulaire en mode continu.
Comment dois je m'y prendre ?

MC

8 réponses

  1. Utilisateur anonyme
     
    Salut !

    Je vois pas bien pourquoi tu veux faire ça, mais bon, le plus simple est de simuler l'appui sur la touche Suppr si l'utilisateur à déjà sélectionné ce qu'il voulait supprimer.
    Pour simuler l'appui sur le clavier en VB, utilise l'instruction SENDKEYS.

    Dans ton cas :
    sendkeys {del}

    @+
    0
  2. zenon Messages postés 729 Statut Membre 180
     
    Si je comprends bien, tu souhaites que l'utilisateur puisse sélectionner plusieurs enregistrements puis les supprimer ous en une fois?

    J'espère qu'il restera des enregistrements dans ta table...

    Sinon, je pense que la seule solution serait d'inclure dans la table une champ oui/non, par exemple appelé supprimer puis de créer un bouton de commande qui supprimerait les enregistrements cochés. C'est ce que tu souhaites faire?
    0
  3. MC
     
    Merci pour vos réponses, mais je crois que je n'ai pas assez détaillé mon problème.
    En fait, dans mon formulaire si l'utilisateur veut supprimer plusieurs enregistrements à la fois il peut les sélectionner avec le sélecteur puis cliquer sur le bouton suppr. Seulement la suppression de ces enregistrements implique une mise à jour d'enregistrements dans une autre table et pour cela je dois connaitre certaines données des enregistrements supprimés.

    Si je ne supprime qu'un enreg, j'utilise CurrentRecord avant de l'effacer, pour récupérer mes données : pas de pb ! La où ça se complique, c'est lorsque je veux en supprimer plusieurs à la fois.

    En fait, Il me manque une propriété permettant de récupérer plusieurs enreg sélectionnés dans un formulaire continu.

    Merci d'avance.
    0
  4. zenon Messages postés 729 Statut Membre 180
     
    En ajoutant une case à cocher, tu peux trier l'ensemble des enregistrements à supprimer dans une requête, éventuellement couplée avec la table que tu veux mettre à jour. Tu peux ensuite effectuer une mise à jour sur cette même requête.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Cap de Boro
     
    Adeu

    Autre solution, mais qui complique peut-être d'autres opérations :
    Plutôt que d'utiliser un formulaire continu, utilise une ListBox dans un formulaire simple. Au moment où l'utilisateur clique sur un bouton "Suppr", tu peux récupérer la liste des enregistrements concernés et appliquer les traitements voulus.
    0
  7. MC
     
    Merci beaucoup pour vos solutions !

    Je crois que je vais rajouter une case à cocher comme l'a indiqué Zénon.
    Ceci dit, la zone de liste est effectivement une autre solution, mais je pense un peu compliquée dans mon cas, quoique ...

    Je pensais quand même que l'on pouvait récupérer les enreg sélectionnés par le sélecteur, mais apparemment non.

    En tout cas, merci !
    0
  8. zenon Messages postés 729 Statut Membre 180
     
    Le sélecteur d'enregistrement ne permet de sélectionner qu'un enregistrement à la fois (heureusement pour les données) et je pense qu'une liste déroulante poserait le même problème. En revanche ou pourrait ajouter les enregistrements sélectionnés dans une seconde liste déroulante et les supprimer en une fois. Pour cela il faut de toute manière intégrer dans la table un champ qui permet de les identifier.

    @+

    Guy
    0
  9. random Messages postés 1612 Statut Membre 155
     
    ton formulaire renvoie des valeurs
    d'abord ouvre ton formulaire en mode exécution
    ecris une requete selection
    dans les clauses where mets =forms!monformulaire!moncontrol
    quand ta selection sera au point modifie la requête en suppression
    e enreregistre la
    associe à l'évènement clic du bouton la commande runsql("ma requete")
    0