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 :

Quel code pour suppression enregistrement ?


Sujet :

VBA Access

  1. #21
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par ORL45 Voir le message
    Ce qui est pris en compte c'est comment il est nommé dans le form, en l'occurence si j'ai bien lu ici "numero" donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((DETAIL.numdetail)=[Forms]![DETAIL]![numero]))
    Ok mais le problème restera le même non ?

    Il me demandera quand même d'entrer le numéro alors que je ne veux pas que l'utilisateur ait à rentrer quoique ce soit.
    Il n'a qu'à appuyer sur supprimer et c'est tout.

    QUESTION : étais-je obligée de passer par une requête suppr car j'ai l'impression que ça complique tout !
    N'y a t-il pas une autre solution à mon problème de départ ?

  2. #22
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.AllowDeletions = True
    Ton formulaire empêche les suppressions ?? penses à mettre ceci à la fin du code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.AllowDeletions = False
    Ceci annule les modifications sur l'enregistrement courant (modification d'une valeur.)
    Inutile si tu supprimes l'enregistrement par la suite... et même si tu ne le fais pas.

    Par contre, c'est utile si tu as un bouton "Annuler les modifications".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "DELETE DETAIL.numdetail" _
    & " FROM DETAIL " _
    & " WHERE (((DETAIL.numdetail)=[Forms]![DETAIL]![Commande126]))"
    C'est normal qu'il te demande quelque chose.
    [Forms]![DETAIL]![Commande126] est dans la requête SQL. Ce n'est pas un paramêtre que tu lui donnes.
    Par contre Commande126 est un bouton si je ne m'abuse.
    Ceci serait plus correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "DELETE *" _
    & " FROM DETAIL " _
    & " WHERE (((DETAIL.numdetail)=" & [Forms]![DETAIL]![numdetail] & "))"
    Pourquoi utilises-tu :
    Il n'y a pas d'évènement Cancel sur un bouton

    Ce qui donnerait :
    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
    Private Sub Commande126_Click()
     
        If MsgBox("Vous êtes sur le point de supprimer définitivement un enregistrement. Cliquez sur OUI pour confirmer sinon NON.", vbQuestion + vbYesNo, "INFORMATION") = vbYes Then
            Me.AllowDeletions = True
            DoCmd.SetWarnings False
            DoCmd.RunSQL "DELETE *" _
                & " FROM DETAIL " _
                & " WHERE (((DETAIL.numdetail)=" & [Forms]![DETAIL]![numdetail] & "))"
            DoCmd.SetWarnings True
            Me.AllowDeletions = False
            MsgBox "Enregistrement supprimé"
            Me.Requery
        End If
     
    End Sub


  3. #23
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Alors attends, le temps que toutes tes explications montent à mon cerveau, que je comprenne le cheminement, la logique, que je l'applique et je te tiens au courant d'ici... disons ... un mois ?

    Je plaisante ! je regarde et te dis.

    A tout de suite.

    Merci.

  4. #24
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par Lou Pitchoun Voir le message
    Salut,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.AllowDeletions = True
    Ton formulaire empêche les suppressions ?? penses à mettre ceci à la fin du code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.AllowDeletions = False
    Oui, c'est un form de consult qui ne permet ni entrées, ni modif, ni suppression, sauf sur clic de bouton avec demande de confirm, que j'ai créés (celui que j'ai créé pour autoriser les modif marche). DOnc dans les propriétés de mon form, à données, j'ai passé tout en NON (sauf filtrage car je en sais pas à quoi il sert...). Remarque, je suis incapable de te dire pourquoi j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.AllowDeletions = True
    ... c'est grave...

    Citation Envoyé par Lou Pitchoun Voir le message
    Ceci annule les modifications sur l'enregistrement courant (modification d'une valeur.)
    Inutile si tu supprimes l'enregistrement par la suite... et même si tu ne le fais pas.

    Par contre, c'est utile si tu as un bouton "Annuler les modifications".
    Je ne le savais pas, je recopie bêtement les codes que je trouve. Merci pour l'info.

    Citation Envoyé par Lou Pitchoun Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "DELETE DETAIL.numdetail" _
    & " FROM DETAIL " _
    & " WHERE (((DETAIL.numdetail)=[Forms]![DETAIL]![Commande126]))"
    C'est normal qu'il te demande quelque chose.
    [Forms]![DETAIL]![Commande126] est dans la requête SQL. Ce n'est pas un paramêtre que tu lui donnes.
    Par contre Commande126 est un bouton si je ne m'abuse.
    Ceci serait plus correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "DELETE *" _
    & " FROM DETAIL " _
    & " WHERE (((DETAIL.numdetail)=" & [Forms]![DETAIL]![numdetail] & "))"
    Citation Envoyé par Lou Pitchoun Voir le message
    Pourquoi utilises-tu :
    Il n'y a pas d'évènement Cancel sur un bouton
    Je ne sais pas, comme je te l'ai dit, tout simplement copié un code...mais c'est très juste, il n'y a pas d'évènement Cancel sur un bouton... je vois un peu mieux comment tout ceci fonctionne (c'est pas gagné mais c'est le métier qui rentre)

    Ce qui donnerait :
    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
    Private Sub Commande126_Click()
     
        If MsgBox("Vous êtes sur le point de supprimer définitivement un enregistrement. Cliquez sur OUI pour confirmer sinon NON.", vbQuestion + vbYesNo, "INFORMATION") = vbYes Then
            Me.AllowDeletions = True
            DoCmd.SetWarnings False
            DoCmd.RunSQL "DELETE *" _
                & " FROM DETAIL " _
                & " WHERE (((DETAIL.numdetail)=" & [Forms]![DETAIL]![numdetail] & "))"
            DoCmd.SetWarnings True
            Me.AllowDeletions = False
            MsgBox "Enregistrement supprimé"
            Me.Requery
        End If
     
    End Sub

    Roulement de tambour........ :
    DEBOGAE, il n'aime pas le code
    ça se situe là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.RunSQL "DELETE *" _
                & " FROM DETAIL " _
                & " WHERE (((DETAIL.numdetail)=" & [Forms]![DETAIL]![Numdetail] & "))"

  5. #25
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Et il te dis quoi au juste ?

  6. #26
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Erreur 2450

    Impossible de trouver le formulaire DETAIL auquel il est fait référence dans une expression de macro ou un code Visual Basic


    et il renvoie aux lignes que j'ai données plus haut

  7. #27
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![DETAIL]![numdetail]
    Forms : mot réservé access désignant la collection Formulaire
    DETAIL : doit être le nom de ton formulaire : si ce n'est pas le bon (vu le message) corrige le.
    numdetail : nom du champ contenant la clé primaire.

  8. #28
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par Lou Pitchoun Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![DETAIL]![numdetail]
    Forms : mot réservé access désignant la collection Formulaire
    DETAIL : doit être le nom de ton formulaire : si ce n'est pas le bon (vu le message) corrige le.
    numdetail : nom du champ contenant la clé primaire.
    Forms = pas compris ce que tu me demandes
    DETAIL : est le nom de la table sur laquelle est basée mon form qui lui s'appelle CONSULTATION / MODIFICATION

    numdetail = c'est bel et bien le nom contenant la clé primaire dans ma table DETAIL. Dans mon form, il s'appelle Numéro...

    Alors ?

  9. #29
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    J'ai essayé de suivre ce que tu m'as dit et avec ce code :

    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
    Private Sub Commande126_Click()
     
     
        If MsgBox("Vous êtes sur le point de supprimer définitivement un enregistrement. Cliquez sur OUI pour confirmer sinon NON.", vbQuestion + vbYesNo, "INFORMATION") = vbYes Then
            Me.AllowDeletions = True
            DoCmd.SetWarnings False
            DoCmd.RunSQL "DELETE *" _
                & " FROM DETAIL " _
                & " WHERE (((DETAIL.numdetail)=" & [Forms]![CONSULTATION / MODIFICATION Ok]![Numdetail] & "))"
            DoCmd.SetWarnings True
            Me.AllowDeletions = False
            MsgBox "Enregistrement supprimé"
            Me.Requery
        End If
     
    End Sub

    ça marche !!!

    Je ne mets pas de suite en résolu car je suis assez pouasseuse... j'attends un peu et je changerai après.

    Merci en tout cas !!!

  10. #30
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 918
    Points : 4 822
    Points
    4 822
    Par défaut
    Au lieu de cette poussée d'adrénaline en SQL tu pouvais aussi essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    If MsgBox("Vous êtes sur le point de supprimer définitivement un enregistrement. Cliquez sur OUI pour confirmer sinon NON.", vbQuestion + vbYesNo, "INFORMATION") = vbYes Then
            Me.AllowDeletions = True
            DoCmd.SetWarnings False    'sans doute pas nécessaire
            RunCommand acCmdSelectRecord
            RunCommand acCmdDeleteRecord
            DoCmd.SetWarnings True    'sans doute pas nécessaire
            Me.AllowDeletions = False
            MsgBox "Enregistrement supprimé"
        End If

  11. #31
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par micniv Voir le message
    Au lieu de cette poussée d'adrénaline en SQL tu pouvais aussi essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    If MsgBox("Vous êtes sur le point de supprimer définitivement un enregistrement. Cliquez sur OUI pour confirmer sinon NON.", vbQuestion + vbYesNo, "INFORMATION") = vbYes Then
            Me.AllowDeletions = True
            DoCmd.SetWarnings False    'sans doute pas nécessaire
            RunCommand acCmdSelectRecord
            RunCommand acCmdDeleteRecord
            DoCmd.SetWarnings True    'sans doute pas nécessaire
            Me.AllowDeletions = False
            MsgBox "Enregistrement supprimé"
        End If
    Arggggggg ! c'est ce que je voulais savoir !! je n'étais pas obligée de passer par une requête !

    Tu étais où quand j'avais besoin de toi !!!!!!!
    MDR ! ça marche également



    Merci à vous tous en tout cas

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [XL-2007] quel code pour faire une annonce a l'ouverture du fichier
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/07/2010, 20h26
  2. Quel code pour trouver l'OS ?
    Par ddorange dans le forum Débuter
    Réponses: 2
    Dernier message: 12/02/2010, 13h28
  3. quel code pour enregistrer une image dans la base de donnée
    Par bambi98 dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/05/2009, 15h55
  4. Réponses: 2
    Dernier message: 08/02/2009, 18h55
  5. quel code pour dire "x n'est pas un Integer" ?
    Par nat44 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 31/07/2008, 10h29

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