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 :

[WD11] Insérer des valeurs dans des cellules de Table


Sujet :

WinDev

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut [WD11] Insérer des valeurs dans des cellules de Table
    Bonjour à tous.

    Voici mon soucis :

    Je lis bien les informations de la table via une requête SQL qui lit bien les 3 champs (colonnes) de ma table et toutes les lignes. Mais quand je veux remplir une table mémoire alors là il ne prend en compte que la dernière colonne.

    Voici le code :

    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
    21
    22
    23
     
    		retCode est un entier = accueil.monAccess:mySQLExec("SELECT "+nom_champ_table+" FROM "+combo_rubrique..ValeurAffichée, 0)
     
    		SI (retCode) ALORS
     
    			ligne est un entier = 1 // On remet la ligne à 1 à chaque changement de colonne
     
    			TANTQUE (accueil.monAccess:mySQLFetch(0))
     
    				valeur est une chaîne = (accueil.monAccess:mySQLLitCol(0,1))
     
     
    				Trace("colonne "+j+" - "+"ligne "+ligne+" = "+valeur)
    // Ligne posant problème !!!!!!!!!!!!!!!!!!!!!!!!!!
    				{"Colonne"+j,0}[ligne] = valeur
     
    				ligne++
    			FIN
     
    		SINON
    			Info(accueil.monAccess:mySQLGetErrorMessage())
    		FIN
    		accueil.monAccess:mySQLFerme(0)
    J'ai dans ce code la ligne Trace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Trace("colonne "+j+" - "+"ligne "+ligne+" = "+valeur)
    Qui me retourne bien ceci :

    colonne 1 - ligne 1 = 1
    colonne 1 - ligne 2 = 2
    colonne 1 - ligne 3 = 3
    colonne 2 - ligne 1 = virement
    colonne 2 - ligne 2 = CB
    colonne 2 - ligne 3 = liquide
    colonne 3 - ligne 1 = 100
    colonne 3 - ligne 2 = 150
    colonne 3 - ligne 3 = 58
    Ce qui est parfait.

    Pourtant à la ligne en dessous quand je veux insérer mon champs dans la bonne cellule (colonne-ligne) là il efface les dernières autres colonnes.

    Et donc dans ce cas-ci, seul la 3ème colonne est affichée avec à la ligne 1 : 100, à la ligne 2 : 150 et à la ligne 3 : 58.

    Ce n'est pas un soucis dans une boucle puisque mon Trace lui fonctionne impeccable.

    Il y a peut-être une FONCTION plus appropriée pour ajouter dans une table ?

    Merci à vous,

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Citation Envoyé par arnaud_verlaine Voir le message
    Il y a peut-être une FONCTION plus appropriée pour ajouter dans une table ?
    J'ai pas tout compris

    Mais à cette question je peux répondre : il y a 2 fonctions TableAjoute () & TableAjouteLigne ()

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    Comme j'ajoute les éléments dans ma table quand je suis dans une boucle, je veux ajouter via le numéro de ligne et de colonne en cours.

    Donc pouvoir ajouter via des coordonnées.

    Or via la fct TableAjouteLigne, il faut connaitre les N colonnes et les valeurs propres à chaque colonne, ce que dans mon cas je ne connait vu que je crée des colonnes au fur et à mesure.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    J'ai essayé avec un tableau de 4 x 3, ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MesDonnees est un tableau fixe de 4 par 3 chaînes 
    nl, j sont entiers
     
    POUR nl = 1 A 4
    	POUR j = 1 A 3
    		{"Colonne"+j,0}[nl] = MesDonnees[nl,j]
    	FIN
    FIN

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    Moi voici ce que ca me donne :



    Mon trace fonctionne bien, donc ma boucle ligne et ma boucle colonne se font bien. Mais les données cellules se font effacer à chaque fois on dirait...

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    La seule différence que je vois entre ton code et le mien c'est l'ordre d'attribution.
    Tu parcours les lignes, puis les colonnes :
    C1,L1
    C1,L2
    C1,L3
    C2,L1
    C2,L2
    C2,L3

    Je fais les colonnes puis les lignes (ce qui me semble plus logique, on remplit ligne par ligne) :
    C1,L1
    C2,L1
    C3,L1
    C1,L2
    C2,L2
    C3,L2

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    Merci. Mais le soucis ne vient pas de là. La façon dont je lis une table n'est pas le problème (en plus je trouve plus "logique" de passer une ligne de gauche à droite) que colonne par colonne... Enfin chacun sa logique !!

    J'ai trouvé une fonction MySQLTable(Table,num_requete) qui mets directement tout dans une table, pour autant que les champs aient été créés dynamiquement au paravant.

    Voilà et un grand merci à Guardian pour son aide

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Citation Envoyé par arnaud_verlaine Voir le message
    je trouve plus "logique" de passer une ligne de gauche à droite) que colonne par colonne...
    C'est ce que je dis

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    787
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 787
    Points : 276
    Points
    276
    Par défaut
    oui tu as raison arf...

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

Discussions similaires

  1. [VBA-E] Comparer des valeurs dans des cellules
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 22/06/2017, 15h00
  2. Excel - Mettre des valeurs dans les cellules
    Par shuya dans le forum Débuter
    Réponses: 1
    Dernier message: 10/02/2009, 09h45
  3. DataGridView et format des valeurs dans les cellules
    Par saultapt dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/06/2008, 16h55
  4. [OleExcel]Entrer des valeurs dans des cellules
    Par Masmeta dans le forum C++Builder
    Réponses: 21
    Dernier message: 06/12/2006, 08h39
  5. Inserer des valeurs dans une cellule
    Par azerty53 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/09/2006, 16h27

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