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

VBA Access Discussion :

Erreur sur supression d'enregistrements dans une table [AC-2016]


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut Erreur sur supression d'enregistrements dans une table
    Bonjour
    J'ai ce code dans un formulaire [F_DateSuppression] sur clic d'un bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CmdValidation_Click()
    If MsgBox("Etes Vous sûr de vouloir effacer le planning? Opération irréversible!", vbYesNo) = vbYes Then
        DoCmd.OpenQuery "R_SuppPlanning"
        MsgBox ("Supression Effectuée !!")
        DoCmd.Close acForm, "F_DateSuppression"
    Else
    DoCmd.Close acForm, "F_DateSuppression"
    End If
    End Sub
    La requête appelée [R_SuppPlanning] est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE T_Planning.NumPlanning, T_Planning.DateJour, T_Planning.IdEmploye
    FROM T_Planning, R_TriEmployeMagasinCourant
    WHERE (((T_Planning.DateJour)<[Formulaires]![F_DateSuppression]![DateSuppression]) AND ((T_Planning.IdEmploye)=[R_TriEmployeMagasinCourant]![NumPersonnel]));
    et le code de R_TriEmployeMagasinCourant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_Personnel.*, T_Personnel.Magasin, T_Personnel.Sortie
    FROM T_MagasinCourant INNER JOIN T_Personnel ON T_MagasinCourant.Magasin = T_Personnel.Magasin
    WHERE (((T_Personnel.Magasin)=[T_MagasinCourant]![Magasin]) AND ((T_Personnel.Sortie)=No));
    Si je laisse [F_DateSuppression] ouvert et specifie une date dans [DateSuppression] et transforme ma requete supression en requete selection puis la lance directement, la requête sort bien les resultat escompté..

    par contre si elle est en supression, j'obtiens:
    Nom : Capture1.JPG
Affichages : 193
Taille : 18,8 Ko

    et c'est l'appel de la macro qui est en jaune:
    Nom : Capture2.JPG
Affichages : 175
Taille : 25,8 Ko

    Je ne comprends pas pourquoi la même macro fonctionne en selection et pas en suppression..

    Surtout que cette macro supression fonctionnait à une époque.. j'ai dû changer qqchose, je ne vois pas quoi...

  2. #2
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    ayant essayé d'analyser l'erreur, l'aide me disait que je dois utiliser * dans la requête.
    j'ai donc modifié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE T_Planning.*
    FROM T_Planning, R_TriEmployeMagasinCourant
    WHERE (((T_Planning.DateJour)<[Formulaires]![F_DateSuppression]![DateSuppression]) AND ((T_Planning.IdEmploye)=[R_TriEmployeMagasinCourant]![NumPersonnel]));
    j'obtiens une autre erreur:
    Nom : Capture1.JPG
Affichages : 187
Taille : 19,2 Ko

    or ma base n'est pas en lecture seule certes cette table est liée... je ne vois pas ..

  3. #3
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    la requête en mode création, si ça peut aider:
    Nom : Capture2.JPG
Affichages : 198
Taille : 76,4 Ko

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Essayez plus tôt dans ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DELETE
    FROM T_Planning
    WHERE (((T_Planning.DateJour)<[Formulaires]![F_DateSuppression]![DateSuppression]) AND ((T_Planning.IdEmploye)=[R_TriEmployeMagasinCourant]![NumPersonnel]))
    AND IdEmploye IN (SELECT T_Personnel.* .....
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    Merci pour ton interet , je suis encore débutant..

    ce code je le met dans le SQL de la macro ou bien à la place de l'instruction qui appelle la macro au niveau du formulaire?

  6. #6
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    En ayant regardé de plus près, je ne vois pas non plus ce qu'il faut mettre en ligne 4.. les 2 conditions étant indiquées dans le where de la ligne 3...

    Désolé mais là je capte pas

  7. #7
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    J'ai ajouté une relation entre la table et la requête:
    Nom : Capture2.JPG
Affichages : 182
Taille : 73,7 Ko

    en ayant parcouru le forum j'ai ajouté un distinctrow:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE DISTINCTROW T_Planning.*
    FROM T_Planning INNER JOIN R_TriEmployeMagasinCourant ON T_Planning.IdEmploye = R_TriEmployeMagasinCourant.NumPersonnel
    WHERE (((T_Planning.DateJour)<[Formulaires]![F_DateSuppression]![DateSuppression]) AND ((T_Planning.IdEmploye)=[R_TriEmployeMagasinCourant]![NumPersonnel]));
    et j'obtiens toujours une erreur:
    Nom : Capture1.JPG
Affichages : 169
Taille : 17,7 Ko

    je m'arrache les cheveux (et comme il m'en reste peu... )

  8. #8
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    j'ai essayé de suivre la piste de Hyperion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DELETE *
    FROM T_Planning
    WHERE (((T_Planning.DateJour)<[Formulaires]![F_DateSuppression]![DateSuppression]) AND ((T_Planning.IdEmploye)=[R_TriEmployeMagasinCourant]![NumPersonnel]))
    AND IdEmploye IN (SELECT T_Personnel.*, T_Personnel.Magasin, T_Personnel.Sortie
    FROM T_MagasinCourant INNER JOIN T_Personnel ON T_MagasinCourant.Magasin = T_Personnel.Magasin
    WHERE (((T_Personnel.Magasin)=[T_MagasinCourant]![Magasin]) AND ((T_Personnel.Sortie)=No)););
    j'obtiens encore une erreur:
    Nom : Capture1.JPG
Affichages : 159
Taille : 23,4 Ko

    et de plus je ne comprends pas pourquoi le débogage n'est plus actif...

    et sur l'aide (accessible par F1) j'obtiens un magnifique: "Erreur inattendue. Veuillez contacter le Support technique Microsoft pour en savoir plus."

    Gargl....

  9. #9
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    Voici où j'en suis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DELETE *
    FROM T_Planning
    WHERE (T_Planning.DateJour)<[Formulaires]![F_DateSuppression]![DateSuppression]
    AND IdEmploye IN (SELECT  T_Personnel.Magasin
    FROM T_MagasinCourant INNER JOIN T_Personnel ON T_MagasinCourant.Magasin = T_Personnel.Magasin
    WHERE (((T_Personnel.Magasin)=[T_MagasinCourant]![Magasin])););
    En fin de compte, ce que je veux faire c'est supprimer dans la table T_Planning les lignes où:
    -le champ DateJour (situé dans la table T_Planning) est inférieur au champ Date suppression situé dans un formulaire appelé F_DateSuppression et qui est ouvert au moment de l'execution de la requête suppression.
    -le champ IdEmploye (situé dans la table T_Planning) correspond au champ NumPersonnel (Situé dans la table T_Personnel ) dont le champ Magasin (situé également dans la table T_Personnel) est égal au champ Magasin (situé dans la table T_MagasinCourant qui est une table qui stocke juste une donnée ).

    Et j'ai l'erreur:
    Nom : Capture1.JPG
Affichages : 158
Taille : 17,7 Ko

    Pourtant les champs Magasin situés dans les tables T_Perseonnel et T_Magasin courant sont tous les deux de type texte court..

    Quelquechose m'échappe..

  10. #10
    Membre confirmé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Points : 570
    Points
    570
    Par défaut
    Résolu grâce à User dans ce fil

    je met resolu ici aussi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2016] Ajouter un enregistrement dans une table sur absence dans la liste déroulante
    Par Gremlinn dans le forum Macros Access
    Réponses: 3
    Dernier message: 21/02/2018, 19h18
  2. [WD18] supression d'un enregistrement dans une table avec un combobox
    Par codefree dans le forum WinDev
    Réponses: 1
    Dernier message: 26/03/2015, 23h43
  3. Réponses: 2
    Dernier message: 07/12/2008, 15h32
  4. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11
  5. AJOUT d'un ENREGISTREMENT dans UNE TABLE
    Par ramo dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/08/2005, 16h24

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