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

IHM Discussion :

Effacer ligne(s) dans ssform feuille de données


Sujet :

IHM

  1. #1
    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 Effacer ligne(s) dans ssform feuille de données
    Bonjour,

    J'ai un form composé d'un ss form en mode feuille de données. J'ai un bouton de commande dans le form qui permet la suppression de l'enregistrement entier.
    J'aimerais savoir s'il est possible de supprimer une ou des lignes du tableau uniquement...Si oui, comment ?

    Merci par avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si j'ai bien compris, tu veux supprimer les lignes du coté N d'une relation 1 à N.

    C'est cela ?

    Starec

  3. #3
    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
    Pourquoi ne t'exprimes-tu jamais comme moi ? lol !
    J'ai pô compris ta question. !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Nessie37 Voir le message
    Pourquoi ne t'exprimes-tu jamais comme moi ? lol !
    J'ai pas compris ta question. !


    Dans ton sous-formulaire, c'est en théorie (et c'est l'utilisation courante), le détail de la sélection qu'il y a dans ton formulaire.

    Ex : Dans le formulaire tu sélectionnes une facture et dans le sous-formulaire tu as le détail de celle-ci. Et dans ton cas tu voudrais supprimer des lignes de factures.

    Est-ce que c'est le cas ?

    Si ce n'est pas le cas, détail un peu plus ce qu'il y a à l'intérieur, car le problème d'un sous-formulaire, c'est que l'on ne peut faire de sélection multiple.

    Starec

  5. #5
    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
    Le "pô" était volontaire (marque de dépit) ! lol !
    Mon form de consult affiche les caractéristiques d'une annonce (qui a saisi l'annonce, qq ref dossier, le type de bien proposé, etc...) et le ss form liste tous les média sur lesquels elle a été diffusée.

    Moi je voudrais avoir la possibilité de supprimer une ligne de média si on l'a retirée de ce media.

    Le ss-form est basé sur une T_jonction (jonction de T_media et T_annonce, avec les ID des 2 tables, une annonce peut être diffusée sur plusieurs média à des dates différentes)

  6. #6
    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 ? Comment supprimer une ou plusieurs lignes de sous forme en mode feuille de données dans mon form ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour Nessie, on ne s'énerve pas.

    Ce que tu peux faire, c'est sélectionner une ligne, et sur un bouton de ton formulaire, récupérer la valeur d'un des champs de cette ligne (n'oublie pas que c'est un sous-formulaire pour la syntaxe).

    Avec cette valeur qui doit être unique, tu lances une requête de suppression (DELETE) avec comme critère la donnée que tu viens de récupérer.

    Starec

  8. #8
    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
    Je ne m'énerve absolument pas, rassure-toi

    Hi hi hi ! Comme à l'accoutumée, ton langage est toujours aussi....inabordable pour moi !
    Alors, tu me demandes (si j'ai bien compris, je traduis dans mon langage), de"sélectionner une ligne, et sur un bouton de mon formulaire, récupérer la valeur d'un des champs de cette ligne (en n'oubliant pas que c'est un sous-formulaire pour la syntaxe).
    Avec cette valeur qui doit être unique, je lance une requête de suppression (DELETE) avec comme critère la donnée que je viens de récupérer
    "....hum, intéressant !
    En clair ? ?
    - sélectionner une ligne <- pas très clair
    - récupérer la valeur <- euh... je veux bien mais ça veut dire quoi ?
    ....
    Ah Starec, tu me connais si bien

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bon, pour essayer de te faire comprendre, on va faire un petit exemple tout simple.

    Tu prends une table qui représente les jours de la semaine (tbl_Jours)

    IdJour strJour
    1 Lundi
    2 Mardi
    3 Mercredi
    4 Jeudi
    5 Vendredi
    6 Samedi
    7 Dimanche

    Nous mettons cette table comme source d'un formulaire en mode feuille de donnée qui devient le sous-formulaire d'un autre.

    Sur ce sous formulaire nous mettons le code suivant sur l'évènement Double-Click

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Form_DblClick(Cancel As Integer)
          ' ===== récupération de l'Id =====
        Dim lngId As Long
        MsgBox Me.IdJour.Value
        lngId = Me.IdJour
     
        ' ===== requête de suppression =====
        Dim strSql As String
        strSql = "DELETE * FROM tbl_Jour WHERE IdJour=" & IdJour & ";"
        DoCmd.SetWarnings False
        DoCmd.RunSQL strSql
        Me.Requery
        DoCmd.SetWarnings True
    End Sub
    Il récupère la valeur du champ IdJour qui me sert de clé (donc d'identifiant unique), une msgbox te donne la valeur (à enlever par la suite), cela se fait sur le double-clique de la flêche de sélection de la ligne.

    Je génère une chaine SQL de suppression que j'exécute, je remets à jour mon formulaire.
    Un boite de dialogue de confirmation (Oui/Non) serait nécessaire pour valider la suppression.

    J'espère que ce petit exemple t'aidera à comprendre mon charabia.

    Ce cours vous a été offert par DVP.

    Starec

  10. #10
    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
    Hi hi hi !
    Je vais mettre à profit ce petit cours offert par DVP. C'est en forgeant qu'on devient forgeron.
    Je te dirai ce que ça donne demain. Donc je ne mets pas en résolu.
    Bonne soirée à toi Starec

  11. #11
    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
    Voici le code que j'ai :
    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 Form_DblClick(Cancel As Integer)
    
          ' ===== récupération de l'Id =====
        Dim lngId As Long
        MsgBox Me.Libellé.Value
        lngId = Me.Libellé
     
        ' ===== requête de suppression =====
        Dim strSql As String
        strSql = "DELETE * FROM jonction WHERE Libellé=" & Libellé & ";"
        DoCmd.SetWarnings False
        DoCmd.RunSQL strSql
        Me.Requery
        DoCmd.SetWarnings True
    
    End Sub
    J'ai bien le messagebox qui me demande si je veux éliminer tel media mais quand je mets OK, ça bogue sur ce que j'ai mis en gras dans mon code "erreur d'exécution 13, incompatibilité de type". J'ai cherché ce que signifiat ce type d'erreur sur le forum mais je ne vois pas où corriger le probl par rapport à mon code...

    PS : ton petit cours est très efficace, j'ai compris le raisonnement. Je n'ai toujours pas les bonnes syntaxes ni les procédures, mais au moins je comprends. merci

  12. #12
    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 Starec ? Une idée sur ce petit bug ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Nessie37 Voir le message
    Alors Starec ? Une idée sur ce petit bug ?
    Oui, car lngId est de type long (donc un numérique), et la valeur dans libellé doit être de type texte, non ?

    Si oui, il faut que tu mettes un string (sur la variable bien sûr ), et que dans ton SQL tu mettes des quotes (') autour de la condition de la clause Where.

    PS : Il ne faut pas croire, mais je bosse, je passe en coup de vent dans la journée.


    Starec

  14. #14
    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
    Merci !
    ça marche ! J'ai juste fait en sorte que ID_jonction soit en numérique (bien que ce soit une liste de choix...comprends pas encore tout mais ça viendra).

    Merci bcp Starec

  15. #15
    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
    Non ça marche pas.
    Le hic c'est que ma T_jonction a 2 ID : ID_média et Id-annonce. Dans la T_media, le codemed (clé primaire) est en numérique mais je l'ai mis en liste de choix dans T_jonction car mon ss-form basé sur T_jonction doit faire apparaitre les libellé des media (or si je laisse en num, j'ai les codes et pas les libellés).

    Du coup, j'ai un super b----L dans ma base et ton code ne fonctionne pas bien. Le "string" (ché pô trop ce que c'est...ne rigole pas, je sais déjà ce que tu penses) bah, où quand, comment ? les ' je les ai mis là (en gras rouge)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSql = "DELETE * FROM jonction WHERE Libellé=" & 'Libellé' & ";"

  16. #16
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim strId As String
    'MsgBox Me.Libellé.Value
    strId = Me.Libellé.value
     
    ' ===== requête de suppression =====
    Dim strSql As String
    strSql = "DELETE * FROM jonction WHERE Libellé='" & Libellé & "';"
    Revoir déclaration de la variable
    Les quotes au mauvais endroit.

    Starec

  17. #17
    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
    Je ne comprends pas !!!!
    Tu es incroyable ! ça marche
    Merciiiiiiiiii !!!!!!!!!!!!!!!!

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

Discussions similaires

  1. Réponses: 28
    Dernier message: 22/03/2022, 10h15
  2. Taille de police dans une feuille de données
    Par muphin dans le forum IHM
    Réponses: 3
    Dernier message: 08/09/2014, 16h58
  3. Réponses: 2
    Dernier message: 19/01/2010, 11h08
  4. Ajout de ligne dans form "feuille de données"
    Par jarod_bx dans le forum Access
    Réponses: 5
    Dernier message: 12/01/2006, 13h31
  5. [MySQL] Supprimer une ligne afficher dans une base de donnée
    Par julienchpt dans le forum PHP & Base de données
    Réponses: 31
    Dernier message: 14/10/2005, 15h45

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