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 :

[WD9] Comment enregistrer des modifications?


Sujet :

WinDev

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut [WD9] Comment enregistrer des modifications?
    Bonjour,

    voila j'ai réfléchi, cherché mais je ne vois pas trop comment je peux réaliser cela.

    En fait j'ai une fenêtre qui me permet d'afficher des renseignement sur les clients existant dans ma base ACCESS.
    Cette fenêtre me permet également de modifier certain champ dont j'aimerais pouvoir enregistrer les modification dans ma base.

    Mais je vois pas trop comment je peux faire cela??

    merci d'avance!!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Tu fais comme pour une base Hyper File avec la fonction HModifie()

    A+

  3. #3
    Membre averti Avatar de Le Shadow
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 265
    Points : 305
    Points
    305
    Par défaut
    Requete Sql de type "Update" ?

    Des fois, té mieux de pas être conscient de c'qui s'passe, pis rester heureux !!!

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à basam95 et à Le Shadow
    Réponse à basam95 : Donc j'ai essayé avec la fonction HModifie() mais le problème est le suivant : si je veux modifier "VIVIEN" en "VIVIE" puis ensuite bien entendu je clique sur le bouton pour enregistrer et là il m'éfface le Nom du client dans la base.

    Réponse à Le Shadow :Ben le truc c'est que j'y es pensé avec les requêtes UPDATE mais je sais pas du tout comment fonctionne les requête sous Windev9. MPourtant j'ai feuillté l'aide de Windev mais ça ne voulais pas fonctionner.

    Merci d'avance!!

  5. #5
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    si tu accède à Access au travers de l'ODBC et que çà ne marche pas, prend contact avec le support car c'est plus que troublant...

    j'espère que tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matable.nom = "VIVIEN"
    hmodifie(matable)
    Emmanuel Lecoester
    => joomla addict.

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à elecoest
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matable.nom = "VIVIEN"
    hmodifie(matable)
    Ben je ne peux pas mettre "VIVIEN" car vu que c'est une combo donc on sait pas à l'avance lequel nom de client est choisit.

    Donc je faisait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matable.nom = NomCombo   
    hmodifie(matable)
    Cordialement.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Si les champs à modifier sont liés à des champs de la base, il suffit, à priori, de faire ErcanVersFichier() puis Hmodifie() avec un contrôle d'erreur sur la fonction pour être sûr que ça fonctionne.

    A+

  8. #8
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par basam95 Voir le message
    Salut,

    Si les champs à modifier sont liés à des champs de la base, il suffit, à priori, de faire EcranVersFichier() puis Hmodifie() avec un contrôle d'erreur sur la fonction pour être sûr que ça fonctionne.

    A+
    +1
    Emmanuel Lecoester
    => joomla addict.

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    réponse à basam95 : J'ai modifié mon code ce qui me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EcranVersFichier(ConsultationModifClt, CLIENT)
    HModifie(CLIENT)
    Mais malheureusemen ça fonctionne pas.
    Tout d'abord je voulais savoir comment on fait
    un contrôle d'erreur sur la fonction pour être sûr que ça fonctionne
    Puis mon problème c'est que ça n'enregistre toujours pas plus précisément au lieu que "IVIEN" devienne "VIVIE" ben ça reste à "VIVIEN".

    réponse à elecoest :
    +1
    Que veux tu dire par là??

    Merci d'avance pour votre aide.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Pour la gestion des erreurs tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    EcranVersFichier()
    SI PAS HModifie(CLIENT) ALORS
       Erreur("Erreur Hyper File : " + HErreurInfo())
    FIN
    Ainsi un message te donnera la raison pour laquelle ton enregistrement a échoué.

    Il faut, bien évidement que tes champs soient liés avec le fichier de donnée.
    Et dans le cadre d'une combo, voir la valeur qui est retournée, dans l'onglet 'Contenu'

    A+

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à basam95
    Bonjour,

    J'ai un problème c'est à dire que je ne vois pas du out ou je dois mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EcranVersFichier()
    SI PAS HModifie(CLIENT) ALORS
       Erreur("Erreur Hyper File : " + HErreurInfo())
    FIN
    puis comment l'insérer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EcranVersFichier(ConsultationModifClt, CLIENT)
    HModifie(CLIENT)
    Puis, les champs sont bien relié au fichier de données orrespondant.
    Ensuite, pour la valeur retournée, j'ai regardé dans l'onglet "Contenu" de ma combo et je t'envoi ci-jointce que ça me donne, car je vois pas trop de koi tu veux parler vis à vis de
    Et dans le cadre d'une combo, voir la valeur qui est retournée, dans l'onglet 'Contenu'
    Merci d'avance pour ton aide et encore merci déja pour tout!!!

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Le code que je t'ai indiqué, tu le mets à la place de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    EcranVersFichier(ConsultationModifClt, CLIENT)
    HModifie(CLIENT)
    Pour le contenu, la valeur mémorisée est C_NOMCLIENT donc la valeur qui sera conservée dans ta liaison est celle-ci. Si ta liaison est bien un champ texte, alors ça devrait marcher, si ta liaison est un entier, qui correspond à ton identifiant dans le fichier CLIENT (en théorie c'est préferable de faire comme ça, ainsi la logique de l'application est conservée) alors il faut que la rubrique mémorisée soit C_CODECLIENT.

    A+

  13. #13
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à basam95
    Bonjour,

    Voila le code que j'ai essayé dans un premier temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EcranVersFichier()
    SI PAS HModifie(CLIENT) ALORS
    	Erreur("Erreur Hyper File : " + HErreurInfo())
    FIN
    Je l'ai insérré dans le bouton valider(ce derner me permet d'effectuer les enregistrement des modifcation.)
    Ci joint- les 2 message qui m'affiche lorsque je change "VIVIEN " en "Kadri". (doc1)

    Lorsque je test avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    EcranVersFichier(ConsultationModifClt,CLIENT)
    SI PAS HModifie(CLIENT) ALORS
    	Erreur("Erreur Hyper File : " + HErreurInfo())
    FIN
    J'obtien les mêmes erreurs.

    Je vois pourquoi mais je vois pas comment faire.

    Merci d'avance!!

    P.S. : désolé c'est un oubli de ma part.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    A priori ton champ C_NOMCLIENT est le rubrique clé de ton fichier, donc tu ne peux pas changer le nom du client, pour éviter cela tu dois avoir un identifiant automatique dans ton fichier et mettre ta rubrique C_NOMCLIENT en clé avec doublon. La liason avec les autres fichiers devra se faire via l'identifiant automatique et non pas le nom, du client.

    Le problème n'est pas lié au code, mais à l'analyse.

    A+

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à basam95
    Bonjour,

    Désolé de répondre que maintenant mais pas eu le tems auparavant.

    A priori ton champ C_NOMCLIENT est le rubrique clé de ton fichier, donc tu ne peux pas changer le nom du client, pour éviter cela tu dois avoir un identifiant automatique dans ton fichier et mettre ta rubrique C_NOMCLIENT en clé avec doublon. La liason avec les autres fichiers devra se faire via l'identifiant automatique et non pas le nom, du client.
    J'ai pas tout compris ce que ta voulu dire par là donc je t'envoie ci-joint les schémas (MCD et MPD) correspondant à ma base pour qetu puisse me donné plus d'information et m'expliqué plus facilement....

    Merci d'avance!!

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Bonjour,

    Ton analyse est ok.
    Le problème doit venir de ta combo qui est lié à C_CODECLIENT qui est un identifiant automatique et une clé unique. Ta rubrique devrait être liée au NomClient pour pouvoir être modifiée sans toucher au code client.

    A+

  17. #17
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à basam95
    Ok, je vient de regarder ce que tu me disait et de modifier mais j'ai toujours le même problème.

    Je t'envoi donc ci-joint dans un document word la fenêtre 'contenu'.

    Merci d'avance!!
    Cordialement.

  18. #18
    Membre actif Avatar de Gilles_69
    Inscrit en
    Décembre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 209
    Points : 251
    Points
    251
    Par défaut
    Salut,
    essaie alors un bout de code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    hlitRecherche(CLIENT,C_CodeClt,maliste.codeclient)
    SI htrouve(CLIENT)
      CLIENT.C_NomClt = maliste.nomclient
      SI pas hmodifie(CLIENT)
         Erreur("Erreur Hyper File : " + HErreurInfo())
      FIN
    FIN
    C'est un peu trivial, mais c'est juste pour voir d'où peut provenir le pb. Passe en mode debug pour t'assurer que :
    - maliste.codeclient renvoie bien le code client
    - hlitrecherche renvoie bien htrouve=vrai

    Tiens moi au courant stp.

    A+

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Après reflexion, je pense qu'il faut que tu procède différement, si j'ai bien compris ta combo te permet de passer d'un enregistrement à l'autre, donc un conflit est généré, lors de la modification, puisque le reste de ta fenêtre pointe aussi sur un enregistrement du même fichier.

    Essaye de ne pas lier la combo à un champ du fichier, onglet LIAISON choix <Aucun> le reste ne change pas (onglet CONTENU). Puis tu peux créer une Textbox dans lequel tu copie le contenu de la combo, à chaque modification. Et tu relie cette Textbox au fichier Client. Lors du EcranVersFichier() ce sont les info de la Textbox qui sont copiée pas ceux de la combo.
    Ou plus simplement vérifie dans unpremier temps que ta conbo n'est pas liée à C_CODECLIENT mais bien à C_NOMCLIENT, toujours dans l'onglet LIAISON.

    A+

  20. #20
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Réponse à Gilles_69
    Bonsoir,

    Lorsque tu parle de : Qu'entend tu par ???

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment effectuer des modification d'enregistrements sous ACCESS
    Par MichaSarah dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/10/2008, 11h13
  2. Réponses: 11
    Dernier message: 24/08/2006, 11h22
  3. [Conception] Comment enregistrer des photos (url) dans sa base
    Par xtiand4 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/06/2006, 23h28
  4. Comment enregistrer des graphiques pour le web?
    Par pepe2006 dans le forum Access
    Réponses: 1
    Dernier message: 11/10/2005, 20h08
  5. [DOM] comment enregistrer les modifs?
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 26
    Dernier message: 30/07/2004, 10h56

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