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 :

VBA et requête ajout dans une table avec case oui/non


Sujet :

VBA Access

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut VBA et requête ajout dans une table avec case oui/non
    Bonjour
    Voilà, en VBA, je migre certaines données d'une table vers une autre. Tous les champs passent bien sauf un champ de case à cocher oui/non.

    Mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set rst = CurrentDb.OpenRecordset("SELECT Num_affaire, Date_decision, Appel FROM cdpi")
    rst.MoveFirst
    While Not rst.EOF
        sql = AutoNumber("tdecisions", "Id_decision", "E" & Right(Year(Date), 2), 3, Year(Date))
        DoCmd.RunSQL "INSERT INTO tdecisions (Id_decion, Num_affaire, Date_decision, Appel) VALUES ('" & sql & "', '" & rst("Num_affaire") & "', '" & rst("Date_decision") & "', '" & rst("Appel") & "');"
        rst.MoveNext
    Wend
    En rouge, mon champ case à cocher de mes deux tables (champs oui/non)

    Tout le code s'exécute. Dans la table que je copie (recordset) 80 % des cases sont cochées... Dans la table de destination, 0%

    Quelqu'un a t-il une idéee.

    Merci
    Marie.

  2. #2
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 738
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Avez-vous désactivé les warnings au début du code avec DoCmd.SetWarnings False :
    https://learn.microsoft.com/fr-fr/of...md.setwarnings

    Si c'est le cas les réactiver et peut-être remplacer le DoCmd.RunSQL ... par la commande currentdb.Execute ..., dbFailOnError qui n'afficher pas d'avertissement quand on exécute une requête action.

    Voir aussi si une table des erreurs a été générée.

    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut
    Bonjour
    Merci de ta réponse.
    j'ai réactivé DoCmd.SetWarnings True
    Voilà l'erreur
    Nom : {B97E8C83-D1BC-40A9-BC99-3FFC533F2A0B}.png
Affichages : 276
Taille : 3,5 Ko

    j'ai transformé ma commande avec CurrentDb.Execute
    J'ai une erreur 3464 - Type de données incompatible dans l'expression du critère

    Marie

  4. #4
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 738
    Billets dans le blog
    67
    Par défaut
    Bonjour,


    Il y a une valeur à null probablement dans le champ Appel de la table cdpi, je serais tenté d'utiliser la fonction nz pour remplacer un null par 0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentdb.Execute "INSERT INTO tdecisions (Id_decion, Num_affaire, Date_decision, Appel) VALUES ('" & sql & "', '" & rst("Num_affaire") & "', '" & rst("Date_decision") & "', '" & nz(rst("Appel"),0) & "');", dbFailOnError
    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut
    C'est désespérant.
    J'ai bien remplacé par Nz(rst("Appel"), 0)... je n'y comprend rien.


    Nom : {BD314AB6-86BC-4BC4-8FDA-1B604BAFA7F8}.png
Affichages : 272
Taille : 5,8 Ko

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2022
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2022
    Messages : 146
    Par défaut
    Une remarque sans doute inutile, mais je la fais quand même :

    Ligne 5 du code dans le 1er post, il y a "Id_decion" au lieu de "Id_decision" je suppose !?

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut
    Citation Envoyé par nemog Voir le message
    Une remarque sans doute inutile, mais je la fais quand même :

    Ligne 5 du code dans le 1er post, il y a "Id_decion" au lieu de "Id_decision" je suppose !?
    Non... c'est une boulette de ma part uniquement sur ce forum... je viens de vérifier.

  8. #8
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    9 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 9 021
    Par défaut
    bonjour,
    1: pense à nommer tes variables de manière à ne pas mettre de doute dans la lecture du code car, même si cela n'a rien à voir avec ton souci, "sql" sert plutôt à nommer une chaine SQL à exécuter dans VBA:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim txSQL as String		' texte SQL de la requête
        Dim Identif as string 	' Identifiant unique
    2: pense à utiliser une variable (qu'on nomme SQL ou équivalent) qui permet de vérifier la syntaxe de ta chaine et y déceler des erreurs en l'affichant en mode débogage ou dans une boîte message:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Identif = AutoNumber("tdecisions", "Id_decision", "E" & Right(Year(Date), 2), 3, Year(Date))
        txSQL ="INSERT INTO tdecisions (Id_decision, Num_affaire, Date_decision, Appel) VALUES ('" & Identif & "', '" & rst("Num_affaire") & "', '" & rst("Date_decision") & "', '" & rst("Appel") & "');"
        Debug.Print txSQL    ' ou également: Msgbox txSQL
        currentdb.Execute txSQL
        rst.MoveNext

  9. #9
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 738
    Billets dans le blog
    67
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    ..
    2: pense à utiliser une variable (qu'on nomme SQL ou équivalent) qui permet de vérifier la syntaxe de ta chaine et y déceler des erreurs en l'affichant en mode débogage ou dans une boîte message:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Identif = AutoNumber("tdecisions", "Id_decision", "E" & Right(Year(Date), 2), 3, Year(Date))
        txSQL ="INSERT INTO tdecisions (Id_decision, Num_affaire, Date_decision, Appel) VALUES ('" & Identif & "', '" & rst("Num_affaire") & "', '" & rst("Date_decision") & "', '" & rst("Appel") & "');"
        Debug.Print txSQL    ' ou également: Msgbox txSQL
        currentdb.Execute txSQL
        rst.MoveNext
    Oui, ça nous permettra entre autre de voir le contenu de identif.
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  10. #10
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    9 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 9 021
    Par défaut
    bonjour User,
    Citation Envoyé par User Voir le message
    Oui, ça nous permettra entre autre de voir le contenu de identif.
    ou un autre champ ... vu que la requête utilise VALUES avec des valeurs entourées d'apostrophes, si on n'est pas rigoureux, cela peut donner des résultats inattendus ou des erreurs avec des colonnes de type date ou numérique (avec ou sans décimales)

  11. #11
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 738
    Billets dans le blog
    67
    Par défaut
    Salut tee-grandbois

    Genre 'True' ou '17/06/2025'
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  12. #12
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 738
    Billets dans le blog
    67
    Par défaut
    Sinon pour Identif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Identif = AutoNumber("tdecisions", "Id_decision", "E" & Right(Year(Date), 2), 3, Year(Date))
    Vous récupérez la valeur du champ Id_decision de la table tdecisions selon le critère.

    Peut-on avoir le contenu de la fonction ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  13. #13
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    9 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 9 021
    Par défaut
    Citation Envoyé par User Voir le message
    Genre 'True' ou '17/06/2025'
    oui et non, en réalité la date entre apostrophes passe sans problème, il faut juste faire attention aux variables récupérées dans VBA pour ne pas se retrouver avec le format US dans les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Madate as Date
    Madate = CDate("12/06/2025")    'OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Madate as Date 
    Madate = #12/06/2025#    'NOK car cela donnera 06/12/2025 dans la table
    mais dans le code de marie75019 la date est issue d'un recordset donc pas de souci.

    Et en effet, 'True' ne passera pas puisque True est une constante qui, entre apostrophes, devient du texte.

    Bien sûr, je dis tout çà à l'attention des apprenants

  14. #14
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut
    Que d'aide et je vous remercie.
    J'ai simplifié pour avoir le minimum et trouver plus facilement le problème.
    Table d'origine : cdpi
    Table de destination : Essai

    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
    DoCmd.SetWarnings True
    Dim txSQL As String
     
    Set rst = CurrentDb.OpenRecordset("SELECT Num_affaire, Appel FROM cdpi")
    rst.MoveFirst
    While Not rst.EOF
        txSQL = "INSERT INTO Essai (Num_affaire, Appel) VALUES ('" & rst("Num_affaire") & "', '" & Nz(rst("Appel"), 0) & "');"
        Debug.Print txSQL
        CurrentDb.Execute txSQL, dbFailOnError
        rst.MoveNext
    Wend
    End Sub
    Message d'erreur direct
    Nom : Sans titre-2.png
Affichages : 250
Taille : 3,4 Ko

    En supprimant ", dbFailOnError", toute la boucle est exécutée avec seulement de rempli Num_affaire... rien dans Appel.

    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
    DoCmd.SetWarnings True
    Dim txSQL As String
     
    Set rst = CurrentDb.OpenRecordset("SELECT Num_affaire, Appel FROM cdpi")
    rst.MoveFirst
    While Not rst.EOF
        txSQL = "INSERT INTO Essai (Num_affaire, Appel) VALUES ('" & rst("Num_affaire") & "', '" & Nz(rst("Appel"), 0) & "');"
        MsgBox txSQL
        CurrentDb.Execute txSQL
        rst.MoveNext
    Wend
    End Sub
    On a la requête
    Nom : Sans titre-1.png
Affichages : 251
Taille : 2,8 Ko

    Puis ça quand la case est décochée
    Nom : Sans titre-1.png
Affichages : 249
Taille : 3,0 Ko

    Mais pareil, aucune case cochée dans la table de destination "Essai"

    Désespérant.

    Quand je fais une requête ajout dans Access, cela fonctionne correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Essai ( Num_affaire, Appel )
    SELECT cdpi.Num_affaire, cdpi.Appel
    FROM cdpi;
    La difficulté c'est que je souhaite passer par un recordset car je dois introduire des valeurs nouvelles qui sont pas dans la table d'origine.

  15. #15
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 738
    Billets dans le blog
    67
    Par défaut
    Essayez de forcer la conversion en numérique : CInt(rst!appel)
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  16. #16
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut
    Bravo
    un grand merci
    on passe sur des valeurs -1 ou 0 (coché ou pas coché)
    et ça complête correctement la base de destination.

    Merci infiniment.

    Je suis toujours épaté par l'entraide et l'implication de ceux présents sur ce forum.
    très belle communauté.

    merci encore une fois à tous ceux qui se sont penchés avec bienveillance sur ma question.

    Marie

  17. #17
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 738
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Merci à tee-grandbois qui avait donné l'explication
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  18. #18
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 775
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 775
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Pourquoi faire une boucle de lecture, alors qu'on peut tout simplement coder un ordre INSERT incluant un ordre SELECT, ce sera beaucoup plus performant si la table est fortement chargée.

    D'une façon générale, avec n'importe quel SGBD relationnel, il faut systématiquement privilégier les requêtes ensemblistes

  19. #19
    Rédacteur/Modérateur


    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 738
    Billets dans le blog
    67
    Par défaut
    Bonjour escartefigue,

    Citation Envoyé par escartefigue Voir le message
    ..

    Pourquoi faire une boucle de lecture, alors qu'on peut tout simplement coder un ordre INSERT incluant un ordre SELECT, ce sera beaucoup plus performant si la table est fortement chargée.

    D'une façon générale, avec n'importe quel SGBD relationnel, il faut systématiquement privilégier les requêtes ensemblistes
    Je pense que c'est dû au numéroauto généré dans la colonne Id_decision qui semble dépendre du numéro précédent. Je dis ça sans être sûr..

    Cdlt
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  20. #20
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2023
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2023
    Messages : 53
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Bonjour,

    Pourquoi faire une boucle de lecture, alors qu'on peut tout simplement coder un ordre INSERT incluant un ordre SELECT, ce sera beaucoup plus performant si la table est fortement chargée.

    D'une façon générale, avec n'importe quel SGBD relationnel, il faut systématiquement privilégier les requêtes ensemblistes

    Bonjour
    Merci pour l'intérêt.
    La boucle est nécessaire donc indispensable de passer par Recordset car je complète avec numero automatique généré suivant mes critères et je complète en même temps une autre table.

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

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