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

WinDev Discussion :

[W28] Evènement sur élément interrupteur dans une table


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut [W28] Evènement sur élément interrupteur dans une table
    Bonjour à toutes et à tous,

    J'ai une table chargée en mémoire avec une colonne de type interrupteur :
    Nom : table_interrupteur.jpg
Affichages : 112
Taille : 34,8 Ko

    Je souhaiterais effectuer une opération lorsque l'interrupteur est activé, respectivement désactivé.

    J'ai à disposition l'événement : "A chaque modification de COL_MonInterrupteur" et cela fonctionne bien lorsque ce dernier est en mode sélectionné.
    Par contre, lorsque je désélectionne un élément de ma colonne, aucune réaction ; l'événement n'est pas joué !

    Auriez-vous une idée pour activer un événement lorsque l'interrupteur passe en mode 'désélectionné ?

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Si tu utilises une colonne de type conteneur avec un champ interrupteur dedans ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Bonjour Frenchsting et merci pour l'idée, je teste ...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    alors...au niveau de l'événement coché/décoché ça réagit
    Par contre, impossible pour l'instant de déterminer l'indice de la ligne de l'élément qui a été coché/décoché .. j'ai toujours l'indice 1 .. je cherche ...

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Normalement, tu peux utiliser Mais le mieux, je trouve, est d'utiliser un TableInfoXY qui pourra te retourner ton n° de ligne même si tu as fait un défilement dans ta table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaLigne = TableInfoXY(MaTable, tiNumLigne, SourisPosX(), SourisPosY())
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    top merci, je teste tout cela car je m'arrachais les cheveux ici ...

    J'avais un bête Evénement "Selection d'une ligne de TABLE_Matable" avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Trace(TableSelect(TABLE_Matable))
    je pensais obtenir l'indice de ma ligne sélectionnée mais ....

    l'événement se déclenche bien à chaque sélection de ligne mais pas avec le résultat escompté !

    Nom : TraceSelectionLigne.jpg
Affichages : 92
Taille : 5,6 Ko

    Pour une raison inconnue, le résultat indique toujours (à l'exception de l'initialisation de ma table) qu'aucune ligne n'a été sélectionnée alors que c'est l'événement 'Sélection d'une ligne..' qui génère la trace ...

    la solution de frenchsting arrive donc à point nommé (avant que je n'aille plus de cheveux) ; merci à lui

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Alors ça fonctionne effectivement, merci encore...

    Avec le code suivant, j'obtiens la ligne de sélection et la valeur de l'interrupteur (on/off) sur l'événement "A chaque modification de INT_Interrupteur"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IndiceLigne est un entier
    IndiceLigne = TableInfoXY(TABLE_DetailHeuresAbsence1, tiNumLigne, SourisPosX(), SourisPosY())
     
    Trace(IndiceLigne)
    Trace(MoiMême.Valeur)
    Le seul petit hic, mais je pense que je vais devoir vivre avec vient du fait que, étant donnée que mon interrupteur est dans un champ conteneur, il faut cliquer 2x sur ce dernier pour l'activer/désactiver (premier clic active la ligne et le second change l'état de l'interrupteur) ...

    Merci

  8. #8
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Sauf s'il y a l'évènement "clic gauche" dans la colonne
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    oui cela aurait été top mais ce n'est pas le cas ...
    Merci quand même

  10. #10
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 371
    Points : 627
    Points
    627
    Billets dans le blog
    1
    Par défaut
    Salut, il y a des soucis avec les interrupteurs qui sont dans d'autres conteneurs comme les tables et zones répétées.
    Le mieux c'est d'utiliser à la place des images on off

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Hello Popoy et merci pour l'idée...
    J'avoue mon ignorance à ce sujet.. l'idée est donc d'avoir une colonne de type image et lorsque l'on clique sur cette dernière, on la change par une autre ; style image avec interrupteur sur off puis on.
    Pour savoir si l'interrupteur est off ou on, on fait juste un teste sur le nome de l'image active ?

    un truc du style ?
    On garde la colonne conteneur et on remplace le champ interrupteur par un champ image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Clic sur COL_MonImage
     
    SI  COL_MonImage[Indice].IMG_MonImage.Nom = "xxx" ALORS
     ...
    SINON
    ....

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    .. J'ai donc fait un test avec une nouvelle colonne de type conteneur et un champ image à l'intérieur de cette dernière.
    J'ai rendu l'image cliquable et j'ai mis le code suivant dans l'événement :

    Click sur IMG_MonImage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    IndiceLigne			est un entier
    IndiceLigne			= TableInfoXY(TABLE_DetailHeuresAbsence, tiNumLigne, SourisPosX(), SourisPosY())
     
    Trace(COL_ConteneurImage[IndiceLigne].IMG_MonImage.Nom)

    La problématique ici est que mon IndiceLIgne renvoie à ce moment la valeur -1 (pas de ligne sélectionnée). J'ai l'impression que l'événement de click sur image se déclenche avant que le la ligne ne devient active d'où le résultat -1

  13. #13
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    As-tu essayé avec la fonction IndiceEnCours. (sans conteneur, sans image ...)
    Par ailleurs avec une colonne conteneur, il faut faire attention de définir le champ de référence.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Merci pour l'idée.. je n'avais même pas connaissance de cette fonction ...

    J'ai testé sur mon image se trouvant dans le champ conteneur mais ici le résultat est identique : l'événement 'sur click' se déclenche avant que le la ligne ne devienne active donc le résultat = 0.

    Pour rappel (pour ne pas perdre de vue la source du problème)

    Nom : table_absences.jpg
Affichages : 84
Taille : 139,6 Ko

    Lors d'une absence d'un(e)enseignant(e), cette dernière et en fonction de sa durée et des filières dans lesquelles il/elle enseigne est décortiquée en plusieurs éléments (tableau 1). Lors de la sélection d'une ligne du tableau 1, le tableau 2 est filtré en conséquence afin de n'afficher que les classes et cours de la période/filière correspondante.

    Comme cette table est chargée en mémoire, je ne peux pas par exemple prendre la première ligne de mon tableau 1, sélectionner des cours dans le tableau 2 puis sélectionner une nouvelle ligne dans mon tableau 2 pour continuer mes sélections. En changeant de ligne dans le tableau 1, je perds mes sélections dans mon tableau 2. Je dois donc, au fur et à mesure que j'active/désactive un cours, répercuter l'état de chaque cours (on/off) dans le fichier idoine.


    J'ai donc testé différents types de colonnes qui permette d'activer/désactiver un interrupteur. Champ image, champ conteneur, champ interrupteur.

    Colonne champ interrupteur :
    Aucune événement du champ interrupteur ne réagit pas si ce dernier passe en mode off : je ne peux donc pas mettre à jour l'enregistrement correspondant

    Colonne champ conteneur avec interrupteur ;

    Réagit au on/off mais nécessite un double click pour activer en premier la ligne/case conteneur puis l'interrupteur proprement dit .

    Je pense vivre avec le double click du champ conteneur, c'est la solution la moins contraignante me semble-t-il....

    Merci à toutes/tous pour votre aide

  15. #15
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Je résume :
    La sélection d'une ligne du champ table 1 (pour reprendre la notation de ton image) déclenche une requête (REQ_Cours) qui remplit le champ table 2.
    Afin de pouvoir utiliser les ruptures, tu es obligé de charger le résultat de Table 2 en mémoire.
    As tu pensé à remplir le champ table 2 via un tableau d'objets. ce tableau étant lui même contenu dans un tableau associatif dont la clé correspondra à l'élément retourné par le champ table 1
    A la volée :
    REQ_Cours :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT
         Cours,
         DateCours,
         .....
    FROM
         ....
    WHERE
         Condition={pParam}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CCours est classe <mapping=REQ_Cours>
    PRIVE
         <MAPPING>
              m_saCours est chaine <mapping=Cours>
              m_dDateCours est date <mapping=DateCours>
         <FIN>
              m_Sélecteur est booléen //Le membre qui va servir en remplir la colonne (volatile) Sélecteur
    FIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CListeCours est classe
    PRIVE
         m_tabCours est tableau de CCours
    FIN
    C'est cette classe qui va servir à alimenter le champ 2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //Déclaration de la fenêtre
    gtaListeCours est tableau associatif sansDoublon,NULL,wl_entier8 de ClisteCours
    gclListeCours est classe //variable sur laquelle sera basé le champ 2
    gpkClé est entier sur 8 //Clé du TA à priori la PK retournée par le champ1
    Sélection d'une ligne du champ 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    gpkClé=TABLE_Champ1
    SI gtaListeCours[gpkClé]..Existe ALORS //On vérifie si le TA a une valeur
         gclListe=gtaListeCours[gpkClé]
    SINON
         REQ_Cours.pParam=gpkClé
         HExécuteRequête(REQ_Cours)
         FichierVersMémoire(gclListeCours,REQ_Cours)
         gtaListeCours[pkClé]=gclListeCours
    FIN
    TableAffiche(TABLE_Champ2)
    Modification du sélecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //éventuellement un TableEnregistre
    gtaListeCours[gpkClé]=gclListeCours  //On mémorise (entre autre) l'état du sélecteur
    //Suite du code
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  16. #16
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    Je viens de faire un test sur une V27 et je n'ai pas ce souci (colonne interrupteur). Il y a quand même une subtilité : il faut cliquer sur la coche et pas juste dans la cellule concernée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI Colonne5[Table1] ALORS
    	Info("coché", Table1)
    SINON
    	Info("pas coché", Table1)
    FIN
    Même chose avec une colonne conteneur + interrupteur. Il faut cliquer sur la coche ou le libellé de l'option.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI Colonne4[Table1].Interrupteur1 ALORS
    	Info("coché", Table1)
    SINON
    	Info("pas coché", Table1)
    FIN
    Une autre idée est d'utiliser la notion d'évènement : regarde du côté de la fonction évènement().
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Je résume :
    La sélection d'une ligne du champ table 1 (pour reprendre la notation de ton image) déclenche une requête (REQ_Cours) qui remplit le champ table 2.
    Afin de pouvoir utiliser les ruptures, tu es obligé de charger le résultat de Table 2 en mémoire.
    As tu pensé à remplir le champ table 2 via un tableau d'objets. ce tableau étant lui même contenu dans un tableau associatif dont la clé correspondra à l'élément retourné par le champ table 1
    A la volée :
    REQ_Cours :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT
         Cours,
         DateCours,
         .....
    FROM
         ....
    WHERE
         Condition={pParam}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CCours est classe <mapping=REQ_Cours>
    PRIVE
         <MAPPING>
              m_saCours est chaine <mapping=Cours>
              m_dDateCours est date <mapping=DateCours>
         <FIN>
              m_Sélecteur est booléen //Le membre qui va servir en remplir la colonne (volatile) Sélecteur
    FIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CListeCours est classe
    PRIVE
         m_tabCours est tableau de CCours
    FIN
    C'est cette classe qui va servir à alimenter le champ 2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //Déclaration de la fenêtre
    gtaListeCours est tableau associatif sansDoublon,NULL,wl_entier8 de ClisteCours
    gclListeCours est classe //variable sur laquelle sera basé le champ 2
    gpkClé est entier sur 8 //Clé du TA à priori la PK retournée par le champ1
    Sélection d'une ligne du champ 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    gpkClé=TABLE_Champ1
    SI gtaListeCours[gpkClé]..Existe ALORS //On vérifie si le TA a une valeur
         gclListe=gtaListeCours[gpkClé]
    SINON
         REQ_Cours.pParam=gpkClé
         HExécuteRequête(REQ_Cours)
         FichierVersMémoire(gclListeCours,REQ_Cours)
         gtaListeCours[pkClé]=gclListeCours
    FIN
    TableAffiche(TABLE_Champ2)
    Modification du sélecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //éventuellement un TableEnregistre
    gtaListeCours[gpkClé]=gclListeCours  //On mémorise (entre autre) l'état du sélecteur
    //Suite du code
    Wow !
    Super pour l'idée. Je t'avoue que je n'ai pas l'habitude de travailler avec des objets pour remplir des tableaux... je vais tester cela. Cela résoudrait le problème du chargement du tableau en mémoire ainsi que celui du traitement ,'manuel' de changement de l'événement 'A chaque modification de ...' qui n'aurait plus lieu d'être si j'ai bien compris ....

    Merci beaucoup !

  18. #18
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Si ton sélecteur ne sert qu'à valider, le seul traitement reste la sauvegarde de ta classe dans le TA. Mais avec une affectation par adresse, on devrait contourner le problème
    La sélection d'une ligne du champ 1 deviendrait (à la volée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    gpkClé=TABLE_Champ1
    SI PAS gtaListeCours[gpkClé]..Existe ALORS //On vérifie si le TA a une valeur
         REQ_Cours.pParam=gpkClé
         HExécuteRequête(REQ_Cours)
         FichierVersMémoire(gclListeCours,REQ_Cours)
         gtaListeCours[gpkClé]=gclListeCours
    FIN
    gclListeCours<-gtaListeCours[gpkClé]
    TableAffiche(TABLE_Champ2)
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 170
    Points : 86
    Points
    86
    Par défaut
    Super, merci infiniment !!
    Je vais pouvoir me débrouiller avec tout cela, c'est vraiment super !!

    Merci encore à tout le monde pour vos efforts.. je ferais bien une distribution de chocolat mais ou ?

  20. #20
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par forstera Voir le message
    Merci encore à tout le monde pour vos efforts.. je ferais bien une distribution de chocolat mais ou ?
    Chez moi, bien sûr
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

Discussions similaires

  1. Question sur les Filtres dans une table Access
    Par OobiloO dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/05/2008, 12h09
  2. [MySQL] Comment récupérer le nombre d'élément présent dans une table
    Par TrX314 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/04/2007, 21h20
  3. Test evenement sur champ vide dans une table
    Par eddyG dans le forum Access
    Réponses: 3
    Dernier message: 30/05/2006, 17h02
  4. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11

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