IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Suppression de plusieurs enregistrements à la fois


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Suppression de plusieurs enregistrements à la fois
    Bonjour, dans le cadre d'une participation à une association, je viens de récupérer une base access à faire évoluer, elle contient du code vba mais je dois avouer que je ne suis vraiment pas un expert !
    Actuellement, je cherche à résoudre un bug (qui n'en est pas vraiment un je pense). Je souhaite supprimer plusieurs enregistrements à la fois. La base permet de gérer le budget de l'association, dont les rentrées d'argent (la vente d'objets vendus), et chaque objet a un prix qui peut évoluer chaque année. dans le formulaire relatif à l'objet, lorsque l'utilisateur clique sur le bouton Suppression, je souhaite que les enregistrements sur l'objet soient effacés d'un seul clic (mais pas l'objet, seulement ceux relatifs à l'année et le chiffre des ventes à l'année).

    Actuellement, la formule utilisée est:
    DoCmd.RunCommand acCmdDeleteRecord
    Avec une boucle (For i=0 to 14 / Next i) pour que l'opération soient répétée sur tous les enregistrement concernant les 15 années de la vie de l'objet. L'ennui, c'est que lorsqu'on clique sur le bouton suppression, le message suivant s'affiche: Erreur 3021 Aucun enregistrement en cours. L'assistant de débuggage affiche que DoCmd.RunCommand acCmdDeleteRecord est en cause. Par ailleurs, un seul enregistrement est supprimé (celui correspondant à i=0). Et si on veut supprimer les suivants, il faut cliquer à nouveau sur le bouton de suppression (et donc effacer les enregistrements un par un).

    Je pense que le code est correct mais le problème doit venir de la version D'Access. En utilisant Access 2003, le problème ne se présente pas, tout est effacé correctement. Mais l'association dispose de la version 2002 d'access et ne peut la faire passer en 2003. Existe-t-il un code pour effectuer cette opération sous Access 2002.

    J'espère que mon explicatione est assez claire. Si ce n'est pas le cas et que vous souhaitez m'aider, n'hésitez pas à me poser des questions supplémentaire.

    Merci
    Vinzom

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Dur de debuguer une portion de code sans l'avoir sous les yeux. C'est etonnant mais tellement vrai.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Suppression]
    Désolé pour le code qui n'était pas donné, j'avais cru lire dans la FAQ qu'il fallait éviter ! (oui, je suis aussi débutant des forums d'entraide...).

    Le code est le suivant, j'espère que vous pourrez le comprendre sans difficulté. Merci de votre aide !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Dim i As Integer
    Dim NbRecord As Variant
     
        Me.AllowAdditions = True
        Me.AllowDeletions = True
        DoCmd.SetWarnings False
     
        NbRecord = [Tcompte]
          DoCmd.GoToRecord , , acFirst
     
      If NbRecord = 0 Then
            Me.AllowAdditions = False
            Me.AllowDeletions = False
            Exit Sub
        End If
     
        If MsgBox("Voulez vous vraiment effacer ce planning ?", vbYesNo, "Planning") = 7 Then
            Me.AllowDeletions = False
            Me.AllowAdditions = False
            DoCmd.GoToRecord , , acFirst
            Exit Sub
        End If
     
        For i = 0 To 14
            DoCmd.RunCommand acCmdDeleteRecord
        Next i
     
        Forms![F001VentesObjetPlanning]![Commande18].SetFocus
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
        DoCmd.SetWarnings True
        Me.AllowDeletions = False
        Me.AllowAdditions = False

  4. #4
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Désolé pour le code qui n'était pas donné, j'avais cru lire dans la FAQ qu'il fallait éviter ! (oui, je suis aussi débutant des forums d'entraide...).
    Ce n'est rien, je suis juste taquin

    Pour ce qui est de ton code, je ne suis pas très coutumier de ce genre d'écriture mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For i = 0 To 14
            DoCmd.RunCommand acCmdDeleteRecord
        Next i
    Une idée qui me passe par la tête : Il reste peut-être sur l'enregistrement supprimé sans qu'un autre, valide lui, ne prenne sa place.
    Ne pourais-tu pas placer dans le code un RunCommand GotoNext (dans le genre).

    Fais une copie de ta base avant de faire des essais hein ... histoire que je ne te fasse pas faire une grosse bêtise.

Discussions similaires

  1. Ajouter plusieurs enregistrements à la fois.
    Par bluegone dans le forum IHM
    Réponses: 1
    Dernier message: 22/09/2011, 08h29
  2. [MySQL] Plusieurs enregistrements à la fois dans une même table
    Par cysedbs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/12/2008, 10h37
  3. [MySQL] Suppression de plusieurs utilisateurs à la fois
    Par zizou86 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/02/2008, 18h08
  4. [MySQL] Modifier plusieurs enregistrements en une seule fois
    Par ClaudeP dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 16/05/2007, 23h07
  5. Update plusieurs enregistrements en 1 seule fois
    Par zonekris dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/09/2006, 19h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo