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 :

Ajouter des données à partir d'un table sans clé prim


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut Ajouter des données à partir d'un table sans clé prim
    Bonjour à tous
    j un table avec des données importer d'un fichier excel avec le code suivant
    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
     
    //supprimer le contenu de la table
    TableSupprimeTout(TABLE_import)
    // mise en place d'un code pour importer les données d'un fichier EXCEL vers une table WINDEV
    t est un entier
     
    MaFeuille est un xlsDocument
    sNomFichierXls est une chaîne
    sNomFichierXls = fSélecteur("", "", ...
    "Sélectionnez un fichier.....", ...
    "Tous fichiers (*.*)"+TAB+"*.*", "*", fselOuvre + fselExiste)
    SI sNomFichierXls = "" ALORS RETOUR
    MaFeuille = xlsOuvre(sNomFichierXls,xlsCompatible)
     
    nligne est un entier
    nligne = xlsNbLigne(MaFeuille,Vrai)
    // nous partirons de la ligne 2 pour ne pas prendre en compte les entêtes de colonne.
    POUR t = 12 A nligne
     
    	TableAjouteLigne(TABLE_import,xlsDonnée(MaFeuille,t,1,Vrai),xlsDonnée(MaFeuille,t,6,Vrai),xlsDonnée(MaFeuille,t,7,Vrai),xlsDonnée(MaFeuille,t,4,Vrai))
     
    FIN
    la table affiche (nom+prénom+date naissance+numéro national)
    je cherche a ajouter le numéro national à mon fichier d'analyse.
    comment faire sans un clé prim?
    la seul relation du table avec les données de mon fichier est le noms et le prénom .date naissance
    faire une recherche identique avec multicritères (nom,prénom,date naissance) et si htrouve alors hajoute

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    je pense que tu es sur la bonne voie sur la procédure car c'est la seule façon de faire. En revanche ce sera sûrement un hmodifie et non pas hajoute. Pour accélérer les temps de recherche, composes une clef avec l'ensemble de ces champs. Ensuite, il faut vérifier le nombre de lignes retournées pour demander à l'utilisateur de faire un choix si plus de 1 ou alors mettre les lignes en erreur et demander à la fin du traitement une intervention de l'utilisateur dans une table pour faire la correspondance.

    bon courage,

    Nicolas

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aveyron (Midi Pyrénées)

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

    Informations forums :
    Inscription : Juillet 2012
    Messages : 36
    Points : 53
    Points
    53
    Par défaut
    Tu peut également utiliser la fonction HFiltre afin de n'avoir que l'enregistrement qui t'intéresse.
    Syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HFiltre(<Nom du fichier> , <Condition de sélection>)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HFiltre(Personne, "Nom= '"+TABLE_import.COL_Nom"' AND Prenom = '"+TABLE_import.COL_Prenom+"' AND Naiss = '"+TABLE_import.COL_Naiss+"'")
    HLitPremier(Personne)
    SI HTrouve(Personne) ALORS
    <div style="margin-left:40px">Personne.NumNat = TABLE_import.COL_NumNat
    HModifie(Personne)</div>FIN
    (Pour la syntaxe de <Condition de selection> je ne suis pas sur de ce que j'ai écrit, mais je l'ai déja utilisé)
    Personnellement, pour ton cas je préfère la méthode de Nicolas_Jeanneau, en mettant une clé composé des champs Nom, Prénom, Naissance. Et en utilisant HLitRecherche avec une clé composé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLitRecherche(Personne, NomPrenomNaiss, ["Le nom","Le prenom","La naissance"])

Discussions similaires

  1. [Python 2.X] ajouter des données volumineuse dans une table oracle
    Par bernards111 dans le forum Général Python
    Réponses: 2
    Dernier message: 09/10/2014, 15h55
  2. Sélectionner des données à partir de plusieurs tables
    Par umut1 dans le forum Zend Framework
    Réponses: 1
    Dernier message: 23/07/2014, 19h44
  3. Réponses: 2
    Dernier message: 08/02/2014, 13h21
  4. [AC-2007] Ajouter des données à partir d'un formulaire
    Par Jerem38 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 22/01/2010, 22h24
  5. Réponses: 8
    Dernier message: 22/08/2006, 12h51

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