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

WebDev Discussion :

Remplir un table clonnée a partir d'une requete


Sujet :

WebDev

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 694
    Points : 953
    Points
    953
    Par défaut Remplir un table clonnée a partir d'une requete
    Bonsoir a tous
    Je veux Remplir un table clonée a partir d'une requete

    voici comment je procède :

    j'ai créer un champ a cocher (SAI_cochez) avec le nom des champs de ma table,

    je récupère les options cochés avec le code suivant :
    Code wlangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI SansEspace(SAI_cochez) = "" ALORS
    SINON
    sReqSQLFinal = ","+SAI_cochez	
    FIN

    je clonne ma table a partir des options cochées
    Code wlangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ChampClone(TABLE_ListePerso.COL_Colonne1,"COL_Colonne"+nIndiceip)
    //change le libellé
    {"TABLE_ListePerso.COL_Colonne"+nIndiceip}..Libellé = INT_Options[nIndice]..Libellé
    //rendre visible
    {"TABLE_ListePerso.COL_Colonne"+nIndiceip}..Visible = Vrai

    je construit ma requête
    [
    Code wlangage : 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
    sReqSQL = [
    SELECT id, matricule AS matricule, nom_complet AS nom_complet %1
     FROM tb_personnel ORDER BY matricule;
    ]
    sReqSQL= ChaîneConstruit(sReqSQL,sReqSQLFinal)
    
    SI PAS HExécuteRequêteSQL(ReqMvts, MaConnexion, hRequêteSansCorrection ,sReqSQL) ALORS
    	Erreur ( "Erreur VOIR ICI:" + RC + HErreurInfo ())
    SINON
    POUR TOUT ReqMvts
     	    TableAjouteLigne(TABLE_ListePerso,
    	    ReqMvts.matricule,
    	    ReqMvts.nom_complet)
    FIN
    FIN
    HAnnuleDéclaration(ReqMvts)

    Mon problème est que je ne sais pas comment remplir ma table a partir des champs clonés(code en rouge).

    j’ai besoin d'aide a ce niveau.

    Merci a tous

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2023
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2023
    Messages : 61
    Points : 126
    Points
    126
    Par défaut
    Bonjour,
    vous devez vous référer à la page d'aide de la fonction ChampClone
    https://doc.pcsoft.fr/fr-FR/?3025017

    qui vous dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    xChamp est un Champ
    xChamp <- ChampClone(COL_Modèle, "COL_Clone" + i)
    xChamp.Largeur = COL_Modèle.Largeur
    xChamp.Libellé = "Matière " + i
    Dans cet exemple, le champ cloné est : xChamp
    Vous avez alors accès à ses propriétés et autres
    Cdlt

  3. #3
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 829
    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 829
    Points : 5 324
    Points
    5 324
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Tu te compliques vraiment la vie, et tu met la charrue avant les bœufs.
    Il suffit de créer ta requête dans le requêteur puis de créer un champ table basé sur cette requête.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 694
    Points : 953
    Points
    953
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Tu te compliques vraiment la vie, et tu met la charrue avant les bœufs.
    Il suffit de créer ta requête dans le requêteur puis de créer un champ table basé sur cette requête.
    Bonjour je ne sais pas si je sui trop fatigué, mais je ne vois pas bien comment procéder ?

    Merci

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 694
    Points : 953
    Points
    953
    Par défaut
    Citation Envoyé par DevOcc Voir le message
    Bonjour,
    vous devez vous référer à la page d'aide de la fonction ChampClone
    https://doc.pcsoft.fr/fr-FR/?3025017

    qui vous dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    xChamp est un Champ
    xChamp <- ChampClone(COL_Modèle, "COL_Clone" + i)
    xChamp.Largeur = COL_Modèle.Largeur
    xChamp.Libellé = "Matière " + i
    Dans cet exemple, le champ cloné est : xChamp
    Vous avez alors accès à ses propriétés et autres
    Cdlt
    Bonjour je vais regarder de ce coté !
    Merci

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 089
    Points : 9 471
    Points
    9 471
    Par défaut
    De mémoire, j'ai des traitements un peu similaires :
    1) Je crée une table par clonage. Je ne m'embête pas, ma table a une seule colonne.
    2) Je construit une mega-requête (une chaine de caractères, pas une variable de type requête)
    3) Avec l'instruction ConstruitTableFichier , je fais tout le reste, cette instruction ajuste ma table (elle ajoute toute les colonnes qu'il faut, avec les bons types, chaine ou nombre ou date par exemple), et elle remplit la table avec le contenu de la requête.

    Donc pour l'étape 3, il doit y avoir 2 lignes de code si je me souviens bien, un SqlExec() et un ConstruitTableFichier(). Plus quelques lignes pour la gestion des erreurs éventuelles.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 694
    Points : 953
    Points
    953
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Bonjour,
    Tu te compliques vraiment la vie, et tu met la charrue avant les bœufs.
    Il suffit de créer ta requête dans le requêteur puis de créer un champ table basé sur cette requête.
    ma requête est construite a partir des cases cochées, comment je pourrai la créer dans le requêteur ?

  8. #8
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 694
    Points : 953
    Points
    953
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    3) Avec l'instruction ConstruitTableFichier ,
    ConstruitTableFichier n'est accessible en webdev !

    Merci

  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 289
    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 289
    Points : 9 377
    Points
    9 377
    Par défaut
    Bonjour,

    Tu n'es pas dans la bonne partie du forum. Les gens "raisonnent Windev". C'est pour cela que tu as et vas avoir des réponses qui ne s'appliquent pas à Webdev...

    L'aide ici te donnera sûrement des pistes...

    Une idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ind est un entier
    POUR TOUT ReqMvts
     	    ind = TableAjouteLigne(TABLE_ListePerso)
     	    tableselect(TABLE_ListePerso, ind)
     	    {COL_Clonée1, indchamp} = ReqMvts.matricule
     	    {COL_Clonée2, indchamp} = ReqMvts.nom_complet
    FIN
    Si ton nombre de colonnes est variable, TableEnumèreColonne te procurera joie et bonheur...
    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

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 089
    Points : 9 471
    Points
    9 471
    Par défaut
    Je crois que c'est la 2ème fois en un mois que tu postes une question dans le mauvais forum...
    Voici le lien vers le sous-forum Webdev ; et pour ouvrir une discussion dans ce sous-forum, il faut cliquer sur le bouton 'ouvrir une nouvelle discussion' , en haut à gauche.

    J'ai déplacé la discussion au bon endroit.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  11. #11
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 289
    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 289
    Points : 9 377
    Points
    9 377
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Je crois que c'est la 2ème fois en un mois que tu postes une question dans le mauvais forum...
    Voici le lien vers le sous-forum Webdev ; et pour ouvrir une discussion dans ce sous-forum, il faut cliquer sur le bouton 'ouvrir une nouvelle discussion' , en haut à gauche.

    J'ai déplacé la discussion au bon endroit.
    Je pense que l'erreur est volontaire, dans le sens où il sait qu'il y a plus de réponses sur la partie Windev...
    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

  12. #12
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 694
    Points : 953
    Points
    953
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Je pense que l'erreur est volontaire, dans le sens où il sait qu'il y a plus de réponses sur la partie Windev...
    Bonjour @frenchsting
    c'est peut être une impression, ce n'est surtout pas mon cas. Surtout merci pour la piste que vous m'avez donné, je vais creuser dans ce sens, je ne connaissais pas cette syntaxe avec les indirections sur les tables.

    Bonjour @tbc92
    c'est du a l'empressement je ferai attention prochainement

    Merci a tous

  13. #13
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 694
    Points : 953
    Points
    953
    Par défaut
    Bon j'ai résumé ma procédure de cette manière
    1- cloner la table en fonction des champs cochés

    2- mémoriser le nom des colonne clonées dans un tableau
    Code wlangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    // LISTE DES COLONES DU TABLEAU
    Montableau est un tableau de chaînes
    POUR nColonne = 1 _À_ TableOccurrence(TABLE_ListePerso, toColonne)
    Ajoute(Montableau, TableEnumèreColonne(TABLE_ListePerso, nColonne))
    FIN
    3- exécuter ma requête
    4- recupération des données dans ma table
    Code wlangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    .......
    ind est un entier
    POUR TOUT ReqMvts
    		 ind = TableAjouteLigne(TABLE_ListePerso)
    		TableSelect(TABLE_ListePerso, ind)
    		{Montableau[1], indChamp} = ReqMvts.matricule
    		{Montableau[2], indChamp} = ReqMvts.nom_complet
    ......
    Ce code exécuté ne me retourne qu'une seule ligne !

    Étant donné que mes colonnes sont variables (dépendent du coche de l'utilisateur), je vois pas comment réaliser cette dernière portion du code ?

    Je continue de chercher !

    Merci

  14. #14
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 289
    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 289
    Points : 9 377
    Points
    9 377
    Par défaut
    Bonjour,

    Une erreur dans le code que je t'ai donné (et que tu aurais dû détecter) et que je viens de voir...
    Ce n'est pas TableSelect qu'il faut utiliser mais TableSelectPlus.

    Mais je pense que vu que ton traitement du résultat de requête, et de ce que tu as dit vouloir faire, tu n'es pas encore au bout de tes peines.
    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. Création d'une table Access à partir d'une requête
    Par mohand53 dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/04/2020, 19h45
  2. Mise à jour d'une table .fic à partir d'une requete access
    Par hobbes34 dans le forum HyperFileSQL
    Réponses: 3
    Dernier message: 25/02/2013, 10h22
  3. [AC-2003] Créer une table temporaire a partir d'une requête en VBA
    Par Williamm dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/06/2011, 08h55
  4. insertion dans une table excel à partir d'une requête access ?
    Par cameleon1881 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/04/2009, 17h57
  5. Réponses: 2
    Dernier message: 02/11/2004, 12h38

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