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 :

ma requete fonctionne mais le champ de saisie ne prend pas la valeur de ma base


Sujet :

WinDev

  1. #1
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut ma requete fonctionne mais le champ de saisie ne prend pas la valeur de ma base
    J’ai travail sur cela tout la journée mais je suis bloqué, je voudrais juste savoir ou est mon erreur ?
    J’ai déjà consulté l’autoformation webdev
    -Champ de saisie lié à une rubrique
    - Fenêtre paramétrée
    -etc….
    Le problème ce que quand je sélectionne une ligne seul le nom de l’agent qui s’affiche et son adresse. Même si je sélectionne une autre ligne cela ne change pas.

    Nom : iMAGE.JPG
Affichages : 481
Taille : 55,7 Ko
    Voici le bout de mon code
    Dans l'initialisation de table_selection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaSource.Param = "2290"

    SElection d'une ligne de table selection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    HLitRecherchePremier(Selection,MATR,Table_Selection.MATR) 
    SI HTrouve()=Vrai ALORS
    	Selection.NOM=Table_Selection.NOM
    	FichierVersEcran(Page4..Nom,Selection)
     
     
    	Saisie1 = Selection.NOM
    	Saisie2 = Selection.ADRESSE
    	...
    FIN
    Ma requête fonctionne parfaitement
    Code sql : 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
    SELECT 	
    Interne.NOM  AS NOM,Interne.ADRESSE AS ADRESSE,
    Agent.MATR AS MATR
     
    FROM 
    Interne,Agent
    WHERE
     
    Interne.MATR = {Param}
     
    UNION
    SELECT
    Agent.NOM AS NOM,Agent.ADRESSE AS ADRESSE,Agent.MATR AS MATR
    FROM
    Agent
    WHERE Agent.MATR = {Param}
    j'ai deja relier le champ de saisie à la requete selection.
    Amicalement Pardonner moi car j'ai debuter sur webdev que ce mois ci

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 198
    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 198
    Points : 9 184
    Points
    9 184
    Par défaut
    Comment as tu "relié" ton champ de saisie ?

    Une requête SELECT avec un UNION dedans, je pense que c'est pas trop prévu pour ne renvoyer qu'une seule valeur...
    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

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Les deux lignes de ta table "pointent" vers le même matricule.
    Comme tu utilises ce matricule comme paramètre à ta requête, elle renvoie 2 lignes.
    Je ne vois pas trop comment WinDev peut alors décider quelle valeur affecter, donc j'imagine qu'il prend celle de la première ligne renvoyée.

    Dans ce genre d'utilisation ta requête ne doit renvoyer qu'une seule ligne.

    Tatayo.

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 050
    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 050
    Points : 9 386
    Points
    9 386
    Par défaut
    Ce que tu peux faire pour avancer, c'est :
    option 1 : Ajouter avant la ligne 3 de ton code une ligne comme info ( " Le programme passe par ici" )
    Ca te permettra de t'assurer que ton code s'exécute.

    option 2 : Tu fais si htrouve() = vrai ... dans ce cas, ton programme est censé faire différentes choses ; tu peux rajouter à la fin un bloc SINON et dans ce bloc, tu affiches un message d'erreur du type ( "Erreur, enregistrement non trouvé" )

    Ainsi, tu auras des éléments pour comprendre pourquoi ton code ne marche pas.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Alors que me conseillerez-vous pour mon paramètre? SVP ca fait déjà 2 jours que je suis calé

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2016
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    regarde ton initialisation

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 050
    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 050
    Points : 9 386
    Points
    9 386
    Par défaut
    Personnellement, je te conseille de lire et d'appliquer les aides qui t'ont été données. Il n'y a pas vraiment de raison qu'on te donne des conseils différents à 2 jours d'intervalle.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Ok je vais m'appliquer. Juste une dernière question est ce qu'il y a une autre option pour faire une requête sql qui présente le même résultât que UNION? Je trouve que union n'est pas très approprier. Parce que si j’utilise JOIN le résultat sera sur une même ligne

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    La bonne question à se poser est plutôt: "qu'est-ce que la requête doit renvoyer ?".
    Car déjà en l'état ta requête est fausse: il n'y a aucune jointure dans la première partie, donc elle renvoie autant de fois l'Interne choisi qu'il y a de ligne dans la table Agent...
    De plus, tu filtres Agent et Interne sur le matricule. Or dans l'exemple affiché, il y a correspondance pour les deux. Donc la requête ne peut que renvoyer 2 lignes (enfin une fois corrigée...).
    Tant qu'on ne sait pas précisément ce qui doit être renvoyé dans ce cas, on ne peut pas répondre.

    Donc montre-nous un jeu de test (un peu plus étoffé que 2 lignes seules) avec le résultat attendu, et là nous pourrons te guider.

    Tatayo.

  10. #10
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Cordialement Tatayo, Je vais un peut introduire, je possède 2 tables Agent et interne. Pour être identifié par l’entreprise, le membre de la famille de l’agent possède la même matricule que lui c’est l’interne. Est je voudrais que les informations de chacun s’affiche individuellement (l’information à-propos de l’agent dans la table agent et celui de l’interne dans la table Interne) quand je sélectionne une ligne dans le tableau. Est je ne sais pas si c’est ma requête ou la syntaxe quand je sélectionne une ligne dans le tableau qui est mauvaise.
    Je voudrai que le résultat de ma requête puisse me permetre de selctionner le matricule de l'gent ou de l'interne dans mon tableau afin d'afficher leur information individuellement sans utiliser un UNION.

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Donc si tu veux un agent OU un interne, et que les deux peuvent avoir le même matricule, il te faut deux requêtes, une pour chaque cas.
    A toi ensuite de choisir la bonne requête en fonction de ce que tu cherches.

    Tatayo.

  12. #12
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    REQ_Info_Agent
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT
    Agent.NOM AS NOM,Agent.DNAISS AS DNAISS
    FROM
    Agent
    WHERE Agent.NOM= {ParamAgent}

    REQ_info_Interne
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 	
    Interne.NOM  AS NOM,Interne.DNAISS AS DNAISS
     
     
    FROM 
    Interne
    WHERE
     
    Interne.NOM = {ParamInterne}

    Alors dans mon HLitRecherchePremier je fais une recherche dans REQ_info_Agent et puis dans REQ_info_Interne???

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Citation Envoyé par titanium23 Voir le message
    Alors dans mon HLitRecherchePremier je fais une recherche dans REQ_info_Agent et puis dans REQ_info_Interne???
    Je crois que j'ai déjà répondu à cette question:
    Citation Envoyé par tatayo Voir le message
    A toi ensuite de choisir la bonne requête en fonction de ce que tu cherches.
    Tatayo.

  14. #14
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 050
    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 050
    Points : 9 386
    Points
    9 386
    Par défaut
    Dans ton tout premier message, tu montres une copie d'écran, une table avec 2 lignes et 2 colonnes. Tu as ajouté via PAINT ou un autre outil de dessin 2 flèches rouges et vertes pour dire que telle personne est un agent, et telle autre est un interne.
    Si tu as ajouté cela sur le dessin, c'est parce que tu as deviné que cette information est ESSENTIELLE. Quand la ligne sélectionnée est un interne, on veut afficher une certaine chose, et quand la ligne sélectionnée est un agent, on veut faire un autre traitement.

    Ton programme ne peut pas deviner quel traitement effectuer, sauf si tu ajoutes dans ta table une 3ème colonne, dans laquelle tu vas écrire le mot INTERNE ou le mot AGENT ; dans la version finale, cette colonne sera visible ou masquée, comme tu veux.
    Et suivant que l'utilisateur sélectionne une ligne de type INTERNE ou de type AGENT, tu exécutes un traitement, ou un autre.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  15. #15
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    alors je remplis mon tableau par programme?mais non avec requete?

  16. #16
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 050
    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 050
    Points : 9 386
    Points
    9 386
    Par défaut
    Je te conseille de faire une version par programme, et une autre par requête, et ensuite, tu choisis celle qui te plait le mieux. Ou celle qui marche.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  17. #17
    Futur Membre du Club Avatar de titanium23
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2016
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    D’accord je vais m’y mettre !!!!

Discussions similaires

  1. [WD20] Question sur le fonctionnement d'un champ de saisie de type date
    Par lololebricoleur dans le forum WinDev
    Réponses: 3
    Dernier message: 31/01/2015, 16h50
  2. requete fonctionnant uniquement avec champ protégé
    Par etarip971 dans le forum MySQL
    Réponses: 2
    Dernier message: 02/03/2010, 17h38
  3. [MySQL] Champs photo qui ne prends pas les espaces
    Par bullrot dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 21/10/2008, 15h19
  4. requete qui ne prend pas comme valeur de critère le contenu d'un champs
    Par alassanediakite dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 16/08/2007, 13h42
  5. [php/mysql]Controle de requete dans un champ de saisie
    Par rdams dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/03/2006, 10h57

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