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

VBA Access Discussion :

Jointures entre deux tables


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Jointures entre deux tables
    *Bonjour,*

    tblEleves:
    PK elevesID (NuméroAuto)
    nom (Texte)
    prenom (Texte)
    division (Texte)
    DateNaissance (Date)
    Numero-Candidat (Double)
    SK notesID (Entier)

    tblNotes:
    PK notesID (NuméroAuto)
    EC_Francais (Entier)
    EC_Maths (Entier)
    Deux tables avec une relation (un à plusieurs) avec intégrité référentielle

    Formulaire:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Private Sub ImportCSV_Click()
     
        Dim Ligne As String
     
        Dim Str_Nom As String
        Dim Str_Prenom As String
        Dim Date_DateNaissance As Date
        Dim Str_Division As String
        Dim Int_Numero As Double
        Dim Int_NotesID As Integer
     
        Dim db As DAO.Database: Set db = CurrentDb
        Dim rsEleves As DAO.Recordset: Set rsEleves = db.OpenRecordset("tblEleves")
        Dim rsNotes As DAO.Recordset: Set rsNotes = db.OpenRecordset("tblNotes")
     
        Dim Int_NumFic As Integer
        Dim Str_Champs() As String
     
        Int_NumFic = FreeFile
        Open "c:\liste.csv" For Input As #Int_NumFic
        Line Input #Int_NumFic, Ligne ' pour eviter la premiere ligne
        Int_Numero = 20120001
     
        While Not EOF(1)
            Line Input #1, Ligne
            Str_Champs = Split(Ligne, ";")
            Str_Nom = Str_Champs(0)
            Str_Prenom = Str_Champs(1)
            Date_DateNaissance = Str_Champs(2)
            Str_Division = Str_Champs(3)
     
     
            With rsNotes
                .AddNew
                    ![EC_Francais] = Null
                    ![EC_Maths] = Null
                .Update
                        With rsEleves
                           .AddNew
                            ![Nom] = Str_Nom
                            ![Prenom] = Str_Prenom
                            ![Date-Naissance] = Date_DateNaissance
                            ![Division] = Str_Division
                            ![Numero-candidat] = Int_Numero
                            ![notesID] = rsNotes.Fields("notesID")
                           .Update
                        Int_Numero = Int_Numero + 1
                        End With
     
            End With
     
     
        Wend
     
        Close #Int_NumFic
    End Sub
    Mes deux tables sont vides au début.
    Sans la jointure NotesID, pas de souci d'import ;-)
    mais si j'ajoute le lien (notes ID), il me faut deux clics pour que l'import se fasse. mais en n'affectant le même entier (1) à tous les élèves: dommage!!

    En fait le problème c'est que je ne sais pas programmer une jointure.
    Pourriez vous m'aider? Merci

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Je ne comprend pas bien la manière de faire
    Soit inclure les champs de la table tblNotes à la table tblEleves puisque la manière actuelle indique qu'une seule note de français et de math sont enregistrées par élève
    Soit la référence doit porter sur elevesID ce qui permet alors de stocker plusieurs enregistrements pour le même élève, il faudrait alors ajouter un champ date par exemple

    tblNotes deviendrait:
    tblNotes:
    PK elevesID (NuméroAuto)
    EC_Francais (Entier)
    EC_Maths (Entier)
    jour (Date)

Discussions similaires

  1. Jointure entre deux tables ?
    Par spirit69 dans le forum Access
    Réponses: 2
    Dernier message: 05/12/2006, 20h21
  2. jointure entre deux tables mysql
    Par Invité dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 23/04/2006, 20h08
  3. [MySQL] Jointure entre deux tables
    Par Flushovsky dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/10/2005, 18h55
  4. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 15h11
  5. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50

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