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

VB 6 et antérieur Discussion :

Faire une recherche sur une autre table?


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut Faire une recherche sur une autre table?
    Bonjour,

    Je recherche a faire une liaison entre deux tables. Je développe une application vb6 avec une bdd Access. Mon application permet d'alimenter la base a partir d'un fichier texte.

    J'ai une table employé ou j'ai numSS, nom, matricule, etc...
    J'ai une autre table qui possède numSS et le matricule qui fait référence au numSS.

    Dans ma table employé j'arrive a insérer toutes mes données (mis a part le matricule) car le fichier qui permet d'insérer mes données ne contient pas le matricule (il posséde juste le numSS).

    Voici mon code :
    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
     
    With rstRapprochment
         IDNumSS = .Fields("NumSSR").Value
         IDMatricule = .Fields("matriculeR").Value
    End With
    With rstEmploye
         .AddNew
         .Fields("numSS").Value = Mid(vLigne, 39, 13)
         .Fields("nom").Value = Mid(vLigne, 62, 25)
         If .Fields("numSS").Value = IDNumSS Then
              .Fields("matricule").Value = IDMatricule
         Else
              MsgBox "aucune correspondance"
         End If
         .Update
         IDEmploye = .Fields("idEmploye").Value
         totalBrutMsa = 0
    End With
    Le probléme est le suivant: l'incrémentation du IDNumSS est toujours sur le premier enregistrement. Ce que j'essaye de faire (Dumoins je cherche, mais ne voit pas comment faire) est une boucle permettant de trouver le bon numSS afin de pouvoir récupérer le matricule de la personne et ainsi l'insérer dans ma table Employe.

    Si vous avez une petite idée, je suis preneur. Cordialement.

    PS: j'ai oublié de préciser que le code était dans une boucle While not EOF. pour parcourir ligne par ligne le fichier txt

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    J'ai testé ceci mais, le programme n'arrive pas a sortir de la boucle si il arrive a la fin de la table Rapprochements.

    Voici mon code:
    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
     
    With rstEmploye
         .AddNew
         .Fields("numSS").Value = Mid(vLigne, 39, 13)
         .Fields("nom").Value = Mid(vLigne, 62, 25)
         Do While .EOF <> True      
              With rstRapprochement
                   IDNumSS = .Fields("numSSR").Value
                   IDMatricule = .Fields("matriculeR").Value
                   If rstEmploye.Fields("numSS").Value = IDNumSS Then
                        rstEmploye.Fields("matricule").Value = IDMatricule
                   Else
                   .MoveNext
                   End If
              End With
         Loop 
         .Update
         IDEmploye = .Fields("idEmploye").Value
         totalBrutMsa = 0
    End With

    Cordialement

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2008
    Messages : 119
    Points : 50
    Points
    50
    Par défaut
    Bonjour a tous,

    Je viens de trouver, voici mon code pour les personnes que sa peut intéresser :

    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
     
    With rstEmploye
         .AddNew
         .Fields("numSS").Value = Mid(vLigne, 39, 13)
         .Fields("nom").Value = Mid(vLigne, 62, 25)   
         With rstRapprochement
              trouve = False
              While Not .EOF And trouve = False
                   IDNumSS = .Fields("numSSR").Value
                   IDMatricule = .Fields("matriculeR").Value
                   If rstEmploye.Fields("numSS").Value = IDNumSS Then
                        rstEmploye.Fields("matricule").Value = IDMatricule
                        trouve = true
                        .MoveFirst
                   End If
                   .MoveNext
              Wend
         End With
         .Update
         IDEmploye = .Fields("idEmploye").Value
         totalBrutMsa = 0
    End With

    Cordialement et bonne journée a tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] comment faire pour rechercher sur une table ?
    Par Kalem dans le forum VBA Access
    Réponses: 8
    Dernier message: 10/04/2012, 09h33
  2. Faire une recherche sur une valeur
    Par silverfab34 dans le forum DB2
    Réponses: 4
    Dernier message: 24/08/2010, 10h22
  3. Réponses: 1
    Dernier message: 26/05/2010, 17h57
  4. Recherche d'une valeur sur un autre onglet
    Par elfye dans le forum Excel
    Réponses: 10
    Dernier message: 03/03/2008, 13h45
  5. SELECT sur l'une ou sur l'autre table
    Par griese dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/07/2006, 14h36

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