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 :

Modification d'un enregistrement d'une table


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut Modification d'un enregistrement d'une table
    Bonjour à tous. Je me doute que c'est quelque chose de facile à faire .. Mais je n'y arrive pas après plusieurs essais infructueux
    Je voudrai simplement modifier une valeur d'un enregistrement dans ma table mais quand j'utilise HModifie, il me met une erreur

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Liste.EstTerminee=COL_Terminee..Valeur
    HModifie(Liste,hNumEnrEnCours)

    Voici mon erreur :

    Erreur à la ligne 2 du traitement A chaque modification de COL_Terminee ( Table_Liste ).
    Vous avez appelé la fonction HModifie.
    Aucun enregistrement en cours n'est défini pour le fichier <Liste>.

    ----- Informations techniques -----

    Projet : ADBListe

    Appel WL :
    Traitement de 'A chaque modification de COL_Terminee ( Table_Liste )' (FEN_Listes.Table_Liste.COL_Terminee), ligne 2, thread 0
    Fonction 'HModifie', syntaxe 2

    Que s'est-il passé ?
    Aucun enregistrement en cours n'est défini pour le fichier <Liste>.


    Suis-je si nul que ça ?

  2. #2
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    bonjour,
    pour modifier un enregistrement,windev doit pouvoir le lire avant.Donc présentement il ne "voit" pas ton enregistrement.

    question: ta table est bien lié à ton fichier?

    essaie ceci tout de même et dis nous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Liste.EstTerminee=COL_Terminee..Valeuraffichée
    HModifie(Liste,hNumEnrEnCours)
    cordialement

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par PaulNero Voir le message
    bonjour,
    pour modifier un enregistrement,windev doit pouvoir le lire avant.Donc présentement il ne "voit" pas ton enregistrement.
    Je me disais bien que c'était ça mon erreur .. Je dois faire une requête pour lire mon fichier dans ce cas ?

    Citation Envoyé par PaulNero Voir le message
    question: ta table est bien lié à ton fichier?
    Oui, puisque du fichier j'affiche dans la table

    Citation Envoyé par PaulNero Voir le message
    essaie ceci tout de même et dis nous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Liste.EstTerminee=COL_Terminee..Valeuraffichée
    HModifie(Liste,hNumEnrEnCours)
    cordialement
    Ca me met la même erreur

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    J'ai essayé de rajouter une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HLitRecherche(Liste,IDListe,Liste.EstTerminee)
    Liste.EstTerminee=COL_Terminee..ValeurAffichée
    HModifie(Liste,hNumEnrEnCours)
    Ca ne me met plus d'erreur ! Mais ça ne fonctionne pas apparemment

  5. #5
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Il faut vérifier que chaque colonne de ta table est bien liée aux rubriques du fichier.
    si cela est fait.

    Dans ton bouton modifier tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    i est une entier
    POUR i = 1 A TableOccurrence(TABLE_NOMTABLE)
            SI TableSelectPlus(TABLE_NOMTABLE, i)=vrai ALORS
                   HModifie(nomfichier)
            FIN
    FIN
    Essaie ceci, ça devrait marcher.

    Cordialement.

  6. #6
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Citation Envoyé par Concept-Informatique Voir le message
    J'ai essayé de rajouter une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HLitRecherche(Liste,IDListe,Liste.EstTerminee)
    Liste.EstTerminee=COL_Terminee..ValeurAffichée
    HModifie(Liste,hNumEnrEnCours)
    Ca ne me met plus d'erreur ! Mais ça ne fonctionne pas apparemment
    Inutile, car la table est liée au fichier, donc théoriquement quand t'es positionné sur une ligne, t'est sur l'enregistrement correspondant.Pas besoin de faire une recherche.

    cordialement

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par PaulNero Voir le message
    Il faut vérifier que chaque colonne de ta table est bien liée aux rubriques du fichier.
    si cela est fait.

    dans ton bouton modifier tu mets:

    i est une entier
    POUR i = 1 A TableOccurrence(TABLE_NOMTABLE)
    SI TableSelectPlus(TABLE_NOMTABLE, i)=vrai ALORS
    HModifie(nomfichier)
    FIN
    FIN

    essaie ceci ça devrait marcher.


    cordialement
    Impossible de lier la colonne que je veux (sinon ce serai trop simple )
    Et ton code me met une erreur de type

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    En fait, mon tableau est rempli par programmation et l'affichage se fait dans une requête. Normalement la modification se fait dans une autre fenêtre mais le client veut qu'on puisse modifier dans celle-ci (une case à cocher). Est-ce que je dois relire le fichier où est contenu ma table pour pouvoir modifier mon enregistrement ? Parce qu'il n'y a aucune liaison entre les colonnes et mon fichier

  9. #9
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Quand tu lies une table à un fichier, les colonnes sont liées aux rubriques par défaut.
    dans ton bouton modifier mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    est une entier
    POUR i = 1 _A_ TableOccurrence(TABLE_NOMTABLE)
            SI TableSelectPlus(TABLE_NOMTABLE, i)=vrai ALORS
                nomfichier.rub1=table_colxx[i]
                nomfichier.rub2=table_colyy[i]
                 ......
                HModifie(nomfichier)
            FIN
    FIN
    Note: lors de la modification, faudra que la ligne en question reste selectionnée, sinon rien ne se passera.


    cordialement

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Tu m'as redonné la même erreur de type (pas taper )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI TableSelectPlus(TABLE_NOMTABLE, i)=vrai ALORS
    Voilà l'erreur. Après je sais pas si ça fonctionne :/

  11. #11
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Citation Envoyé par Concept-Informatique Voir le message
    En fait, mon tableau est rempli par programmation et l'affichage se fait dans une requête. Normalement la modification se fait dans une autre fenêtre mais le client veut qu'on puisse modifier dans celle-ci (une case à cocher). Est-ce que je dois relire le fichier où est contenu ma table pour pouvoir modifier mon enregistrement ? Parce qu'il n'y a aucune liaison entre les colonnes et mon fichier
    Bah voilà ça commence à être clair de ton côté!!

    Tu peux lier ta table à la requête.Mais si ta requête a des jointure du type inner join ou left outer join ou autre, je crois pas(avec réserve bien sûr) que tu pourrais modifier depuis la table.

    Ta requête traite combien de fichiers?

  12. #12
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Citation Envoyé par Concept-Informatique Voir le message
    Tu m'as redonné la même erreur de type (pas taper )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI TableSelectPlus(TABLE_NOMTABLE, i)=vrai ALORS
    Voilà l'erreur. Après je sais pas si ça fonctionne :/
    cela voudrai dire que ta table n'accepte pas les selections?

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par PaulNero Voir le message
    Tu peux lier ta table à la requête.Mais si ta requête a des jointure du type inner join ou left outer join ou autre, je crois pas(avec réserve bien sûr) que tu pourrais modifier depuis la table.
    Justement je sais pas si je peux le faire, je suis pas assez doué pour savoir si tout va merder à cause de la requête ..

    Citation Envoyé par PaulNero Voir le message
    Ta requête traite combien de fichiers?
    Si j'ai bien vu, 4 ! Mais je dois juste pouvoir modifier un seul champ d'une seule table. C'est ce que j'essaie de faire mais je n'y arrive pas

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par PaulNero Voir le message
    cela voudrai dire que ta table n'accepte pas les selections?
    Si. Avant elle ne pouvait pas mais je l'ai modifiée. *vérifie* . C'est bien en saisie

  15. #15
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Ok Ok,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Pour tout ligne selectionnée de nomtable
        hlitrecherche(nomfichier,rubriquerecherchée,nomtable.colXX)
        si htrouve(nomfichier)
             nomfichier.rubrique=nomtable.col
             hmodifie(nomfichier)
        fin
    fin
    essaie cela et dis nous.


    cordialement

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par PaulNero Voir le message
    Ok Ok,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Pour tout ligne selectionnée de nomtable
        hlitrecherche(nomfichier,rubriquerecherchée,nomtable.colXX)
        si htrouve(nomfichier)
             nomfichier.rubrique=nomtable.col
             hmodifie(nomfichier)
        fin
    fin
    essaie cela et dis nous.

    cordialement
    Je cherchais justement un code dans ce genre là . Mais je trouvais pas
    Apparemment le code fonctionnerait .. Mais il ne trouve pas mon fichier ! HTrouve = Faux
    Après je sais pas si ça fonctionne en mode test à partir de WinDev ...

    Edit : Mon fichier "Liste" renvoie la valeur "Liste"

  17. #17
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Essaie de faire un trace de ton:
    nomtable.colXX.

    Car si cette valeur existe dans le fichier, il doit la trouver,mais possionne toi aussi sur la bonne rubrique rubriquerecherchée


    cordialement

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par PaulNero Voir le message
    Essaie de faire un trace de ton:
    nomtable.colXX.

    Car si cette valeur existe dans le fichier, il doit la trouver,mais possionne toi aussi sur la bonne rubrique rubriquerecherchée

    cordialement
    Voilà mon code (pour le moment) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HLitRecherche(Liste,IDListe,COL_Terminee)
    Liste.EstTerminee=COL_Terminee
    HModifie(Liste,hNumEnrEnCours)
    Dans Liste.EstTerminee j'ai bien Faux et une fois l'instruction passée, j'ai la valeur Vrai. La modification est bien faite. Mais elle ne se met pas à jour avec HModifie()

  19. #19
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 376
    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 376
    Points : 9 541
    Points
    9 541
    Par défaut
    Question : est-ce bien le bon enregistrement qui est modifié ?

    Uitlise plutôt HLitRecherchePremier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HLitRecherche(Liste,IDListe,COL_Terminee)
    et
    HLitRecherchePremier(Liste,IDListe,COL_Terminee)
    ne renvoient pas forcément la même valeur.

    Je verrrais bien un truc de ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HLitRecherchePremier(Liste,IDListe,COL_Terminee)
    SI Htrouve(Liste)
    Info(Liste.idListe) // ou qqchose qui te permeet d'être sûr que c le bon enreg
    Liste.EstTerminee=COL_Terminee
    HModifie(Liste,hNumEnrEnCours)
    FIN

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 35
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Question : est-ce bien le bon enregistrement qui est modifié ?
    Non. C'est l'enregistrement 0
    EDIT : Par conter IDListe est à 5 (rien à voir avec l'enregistrement dans la base) et j'ai l'impression que ce n'est même pas le bon ... *désespère*

    Citation Envoyé par frenchsting Voir le message
    Je verrrais bien un truc de ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HLitRecherchePremier(Liste,IDListe,COL_Terminee)
    SI Htrouve(Liste)
    Info(Liste.idListe) // ou qqchose qui te permeet d'être sûr que c le bon enreg
    Liste.EstTerminee=COL_Terminee
    HModifie(Liste,hNumEnrEnCours)
    FIN
    Je vais tester, au pire je récupère le numéro de l'enregistrement dans une variable pourrie
    Merci de ton aide

Discussions similaires

  1. [AC-2010] Modif d'un enregistrement d'une table sur formulaire
    Par myrddin99 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/06/2012, 12h38
  2. Réponses: 1
    Dernier message: 12/11/2011, 18h07
  3. Modification d'un enregistrement dans une table
    Par cyberspace7119 dans le forum VBA Access
    Réponses: 7
    Dernier message: 20/06/2007, 11h02
  4. [MySQL] Modification des enregistrements d'une table à partir d'un formulaire
    Par Maria1505 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 18/12/2006, 17h32
  5. [Conception] Modification d'enregistrement dans une table
    Par Volixium dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/09/2006, 12h48

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