Modifier windev

Bonjour,

je veux créer un bouton <MODIFIER> pour pouvoir modifier la ligne sélectionnée d'une table
quand on click sur le bouton modifier une nouvelle fenetre s'ouvre avec des champs remplire
merci d'avance et à très bientôt.

11 réponses

  1. hlitrecherchepremier
    si htrouve=vrai alors
    hmodifi()
    sinon
    hajoute
    fin
    2
    1. SI HNbEnr(CarnetAdresses)=0 ALORS RETOUR
      EcranVersFichier()
      HModifie(CarnetAdresses)
      SI ErreurDétectée ALORS
      SI HErreurDoublon() ALORS
      Erreur("Une erreur de doublons est survenue")
      FIN
      SI HErreurIntégrité() ALORS
      Erreur("Une erreur d'intégrité est survenue")
      FIN
      SINON
      Info("Modification effectuée")
      FIN
      TableAffiche(TABLE_CarnetAdresses)
      0
      1. merci
        F_client.code n'est pas un clé auto increment ;
        oui je teste tjrs les requette sql ça marche sur la console sql mais quand je voudrais executer le code ça marche pas !!!.
        0
        1. si F_client.code est une clé auto incrementer tu n'a pas besoin de la mettre dans la fonction ajoute

          apres le seul conseil que je peu te donner c'est de tester en sql directement tes requete sur la console sql avec de valeur test pour voir si cela vien de ta requete,ou du code
          0
          1. merci ,
            T_Client.noveau et T_Client.modifier permet d'ouvrire meme fenetre F_Client
            j'ai fait ce code mais ça marche pas !!

            j'ai utilise SQL server 2000 et windev .
            0
            1. Selon T_client.Nouveau
              cas vrai
              ressql=SQLExec("insert into client(code,intitulé) values(' "+F_client.code+" ',' "+F_client.intitulé+" ')" , "req1")
              SQLFerme("req1")
              cas faux
              SQLExec("update client set intitulé = ' "+F_client.Intitulé+" ' where code = ' "+F_client.code+" ' ","req2")
              SQLFerme("req12")
              autres cas
              // impossible pour un booléen normalment
              fin
              limite tes variable une variable pour savoir si c'est l'ajout ou la modif une varriable suffit

              apres tes erreur vienne peu etre de ton sql
              tu utilise quoi comme BDD ?
              0
              1. merci pour la reponse
                j'ai fait ce code là mais ça marche pas
                si T_client.Nouveau=vrai alors 
                ressql=SQLExec("insert into client(code,intitulé) values(' "+F_client.code+" ',' "+F_client.intitulé+" ')" , "req1") 
                SQLFerme("req1") 
                fin 
                si T_Client.Modifier=vrai alors 
                SQLExec("update client set intitulé = ' "+F_client.Intitulé+" ' where code = ' "+F_client.code+" '  ","req2") 
                SQLFerme("req12") 
                FIN 

                j'utilse windev 10 et sql server 2000.
                merci pour l'aide.
                0
                1. alors tu place des parametre en ouverture de fenetre exemple
                  Nouvelenregistrement ( bool)
                  avec vrai si c'est un nouveau
                  et ton id de tes champs pour sic c'est une modification

                  et ton code de ton bouton sera

                  si Nouvelenregistrement=vrai alors
                  hajoute()
                  sinon
                  hlitrecherchepremier
                  si htrouve=vrai alors
                  hmodif()
                  sinon info("erreur")
                  fin
                  fin
                  0
                  1. merci,
                    mon objectif est comme suivante:
                    1ere fenetre (T_client)j'ai un table memoire et des bouton noveau;supprimer;modifier,imprimer
                    quand je click sur noveau ou modifier un fenetre s'ouvre(F_client)
                    cette fenetre contient deux champs de saisie et deux bouton OK et ANNULER
                    je voudrais ke le bouton OK fait deux choses insert ou update dans la base de donnee mais pas en meme temps cad=>quand on click sur noveau de la fenetre T_client la fenetre F_client s'ouvre apres on remplir des champs et ensuit on click sur le bouton OK pour faire INSERT.
                    est ce que possible ou non?
                    merci d'avance.
                    0
                    1. merci pour la reponse
                      oui maintenat ça marche bien,
                      mais mon probleme je voudrais que un seul bouton fait deux chose insert et update je ne sais pas est ce qu'il existe ou non.
                      0
                      1. tu fait un ouvre(nom de ta fenete)
                        apres ya 2 solution soit ta clé est dans une variable globale , soit tu la passe en procedure dans le derneir cas de memoire c ouvre( fenetre, param)

                        pour etre sur tu tape ouvre() et un f1 dessus pour avoir le détail
                        -1