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 :

Débutant: Supprimer une fiche d'un formulaire


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut Débutant: Supprimer une fiche d'un formulaire
    Bonjour,

    Je possède un formulaire sur lequel plusieurs fiches de sociétés sont enregistrés et je souhaite pouvoir supprimer l'une de ces fiches quand je suis dessus en appuyant sur un bouton. J'ai donc utilisé la macro "supprimerobjet" qui ne fonctionne pas. Le message que j'ai est qu'il ne peut supprimer la fiche si celle ci est ouverte.

    Comment puis-je faire?

    Merci,

    Jocelyn

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Il te suffit de faire une requête suppression et ensuite de faire un rafraichissement de ta page.

    Je ne vois pas trop ou est ton problème ???
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    Mon souci c'est que je débute juste donc une requête suppression je comprends pas. Javais utilisé une macro, c pas possible?

    En faite je ne vois pas comment à partir d'une requête je peux supprimer une ligne de ma table (donc les caractéristiques d'une entreprise).

    Merci de m'expliquer,

    Jocelyn

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Tu vas dans le générateur de requête et au lieu de faire une requête de sélection tu choisis la requête de suppression, et en mettant un filtre sur l'entreprise que tu veux supprimer, tu enleveras la ligne de la table.
    L'aide dans Access te permettra de faire ta requête.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Après avoir essayé avec une requête suppression je rencontre toujours un problème. Lorsque je créé un bouton commande sur mon formulaire (pour effacer une fiche) je ne peux pas le faire éxécuter une requête suppression. Seul les autres requêtes apparaissent dans le fenêtre de choix d'une requête à éxécuter sur clic du bouton.

    Help me please,

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Ta table qui contient ton entreprise contient un id ou pas ???

    Si c'est le cas, tu peux faire ta suppression avec des variables.

    Il faut que tu crées ta variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim g_entreprise As String
    Dim g_entreprise as String
     
    'date1
    Public Function get_entreprise() As String
    get_entreprise= g_entreprise
    End Function
    Public Function set_entreprise(entreprise As String) As Integer
    g_entreprise = entreprise
    End Function
    Ensuite sur ton bouton d'action tu mets le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    i as integer
    i = get_entreprise("")
    i = get_entreprise(Forms!formulaire!champ)
    Docmd.SetWarnings false
    Docmd.OpenQurey  "Requête de suppression"
    Docmd.SetWarnings true
    Me.refresh
    Pour utiliser la variable dans ta requête suppression, il te suffit de mettre à l'endroit ou tu as besoin de l'id :
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 38
    Points : 36
    Points
    36
    Par défaut
    Essaye en creant sur ton formulaire (unique si possible) un bouton de commande par l intermediaire du generateur
    il te suffit de repondre aux questions

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Je relance le sujet car je viens de me rendre compte que ma solution qui est de cliquer sur un bouton "modifier" (pour mettre le formulaire en mode modification) avant de cliquer sur le bouton "supprimer" (réaliser avec l'assistant access) ne fonctionne pas super. En faite cela supprime bien la fiche et la ligne dans la table mère mais pas celle dans la table fille.

    Je ne comprends pas pourquoi?

    Jocelyn

  9. #9
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    Regarde les propriétés de ta relation entre la table mère et fille et tu comprendras.

  10. #10
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Re,

    Comme j'ai vu ta base, je te propose ce code pour ton bouton d'effacement:
    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
    Private Sub Commande908_Click()
    Dim db as DAO.Database
    On Error GoTo Err_Commande908_Click
     
        Set db = Currentdb
        db.Execute "Delete * FROM VSHProducts WHERE NumCompany = " & Me.NumCompany
        db.Execute "DELETE * FROM VSH WHERE NumCompany = " & Me.NumCompany
        Me.Requery
     
    Exit_Commande908_Click:
        set db = Nothing
        Exit Sub
     
    Err_Commande908_Click:
        MsgBox Err.Description
        Resume Exit_Commande908_Click
     
    End Sub
    Bon courage,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Je n'ai qu'une chose à dire tu proposes super bien!!!

    Tu sais s'il est possible d'avoir un message de confirmation d'effacement qui s'affiche?

    Amicalement,

    Joc

  12. #12
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Après les execute, rajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox db.recordsaffected & " lignes supprimées"
    [Access] Les bases du débogage => ici

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Merci à toute la dream team pour toute votre aide vous êtes géniaux!!!

  14. #14
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Re,

    Avec compte-rendu
    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
    Private Sub Commande908_Click()
    Dim db As DAO.Database ', sMessage As String
    On Error GoTo Err_Commande908_Click
     
        sMessage = "L'enregistrement de " & Me.Company 
        Set db = CurrentDb
        db.Execute "Delete * FROM VSHProducts WHERE NumCompany = " & Me.NumCompany
        db.Execute "DELETE * FROM VSH WHERE NumCompany = " & Me.NumCompany
        Me.Requery
        MsgBox sMessage & " a été supprimé."
     
    Exit_Commande908_Click:
        Set db = Nothing
        Exit Sub
     
    Err_Commande908_Click:
        MsgBox Err.Description & vbcrlf & sMessage & " n'a pu être correctement supprimé."
        Resume Exit_Commande908_Click
     
    End Sub
    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    En faite j'ai du mal m'exprimer. J'aurais aimé savoir s'il était possible d'avoir un message de confirmation d'effacement avant l'effacement finale. Car comme dans toute entreprise il y en a qui sont pas très malin je préfère prévoir. Qu'il viennent pas me dire après qu'ils n'avaient pas compris que le bouton avec une poubelle dessus servait a effacer

    Merci,

    Jocelyn

  16. #16
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 179
    Points : 217
    Points
    217
    Par défaut
    En utilisant toujours msgbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Msgbox("Confirmez vous la suppression ?",VbQuestion+VbYesNo,"TITRE BOITE DE DIALOGUE")=VbYes Then
     
    'Je fais mon petit traitement qui va bien
     
    End If

  17. #17
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Il suffit de demander :
    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
    Private Sub Commande908_Click()
    Dim db As DAO.Database, iRéponse As Integer
    On Error GoTo Err_Commande908_Click
     
        iRéponse = MsgBox("Effacer l'enregistrement de " & Me.Company & "?", vbQuestion + vbYesNo)
        If iRéponse = vbNo Then Exit Sub
        Set db = CurrentDb
        db.Execute "Delete * FROM VSHProducts WHERE NumCompany = " & Me.NumCompany
        db.Execute "DELETE * FROM VSH WHERE NumCompany = " & Me.NumCompany
        Me.Requery
     
    Exit_Commande908_Click:
        Set db = Nothing
        Exit Sub
     
    Err_Commande908_Click:
        MsgBox Err.Description
        Resume Exit_Commande908_Click
     
    End Sub
    A+

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 115
    Points : 61
    Points
    61
    Par défaut
    Total respect!!!

    Sans vous j'aurais passé 2h dessus pour trouver une soluce qui aurait pas fonctionné une fois sur deux

    Jocelyn

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

Discussions similaires

  1. Supprimer une tabulation sur un formulaire
    Par gta1234 dans le forum IHM
    Réponses: 1
    Dernier message: 09/07/2007, 18h10
  2. Supprimer une ligne dans un formulaire
    Par LAGARDETTE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/09/2006, 20h11
  3. Réponses: 16
    Dernier message: 04/08/2006, 14h14
  4. Réponses: 2
    Dernier message: 20/07/2006, 19h40
  5. Réponses: 4
    Dernier message: 01/09/2004, 16h56

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