Creation d etat sur access 2010

Résolu
bonjour,
je suis debutante avec access et vba et j ai besoin de vos aides
j ai une table students (qui est une liste d'élèves avec leurs coordonnees) et j ai une deuxieme table exam(contient tout ce qui concerne un examen avec les numeros des salle d examen)et une troisieme table exam room cantenant le numero de la salle d'examen avec la capacite de la salle.

j'aimerai creer un etat dans lequel pour un niveau d etude donnee j affiche le numero de salle d examen avec une liste d etudiant selon la capacite de la salle cad si jai une salle x avec capacite 20 eleves et une salle y avec capacite 30 je dois afficher dans un tableau
deux colonnes num-salle et id etudient dans une premiere ligne je trouve x et les 20 premier etudiants et une 2eme ligne y et les 30 eleves qui suit les 20 premier.
comment peut on faire ? des idees?
merci

3 réponses

  1. Bonjour
    As tu faite les relations entre les Tables?
    Ton futur etat dependra des ces relations.
    0
    1. en faite le but c'est de distribuer les etudiants sur les salles d examen selon les capacites des salles pour la salle x de capacite 20 j affiche les 20 premiers noms d etudiant de la table students. est ce que j ai besoin des relations dans ce cas?
      0
      1. Bonjour
        Oui une relation 1 a plusieurs entre la table salle et etudients.
        Ce qui veut dire on choisit une salle pour y mettre plusieurs etudiants.
        Aprespar la suite tu pourras sur un etat imprimer la liste des etudiants par salle
        0
      2. ok deja mes tables sont reliees mais comment faire pour avoir le resultat que je veux ?
        0
      3. L'exemple que je t'ai fait parvenir te convient il?
        0
      4. merci pour votre aide mais dans mon exemple j ai un champs supplémentaire capacite-sallle dans la table salle je veux dans la forme F_salle que tu m as envoye lorsque je choisis le nom de la salle m affiche un nombre d etudiant egale a la capacite de cette salle. ainsi dans l etat le meme design qui vous m avez envoye mais selon les capacite des salles
        salle A --------- 20 premier etudiants
        salle B_____ les 20 qui suit (je commence l affichage a partir de 20eme etudiant)
        salle C_____ les 30 qui sui(je commence l affichage a partir de 50eme etudiant)

        est ce que vous pouvez m"aider ? MERCI
        0
    2. voici le code correspendant
      Sub Studentlist()
      Dim db As Database
      Dim rsRoom As Recordset
      Dim rsStudent As Recordset
      Dim rsList As Recordset

      Dim lngNumRoom As String
      Dim lngCapacity As Long
      Dim lngIndice As Long

      Set db = CurrentDb
      Set rsRoom = db.OpenRecordset("Room", dbOpenDynaset)
      Set rsStudent = db.OpenRecordset("Students", dbOpenDynaset)
      With rsRoom
      rsRoom.MoveFirst
      Do Until rsRoom.EOF
      lngCapacity = rsRoom![Capacity]
      lngNumRoom = rsRoom![NumRoom]

      Debug.Print lngNumRoom, lngCapacity
      Do Until lngCapacity = 0 Or rsStudent.EOF
      Debug.Print , , rsStudent!StudentID
      DoCmd.RunSQL "INSERT INTO StudentsList (NumRoom,StudentID)" _
      & " VALUES (" & lngNumRoom & "," & rsStudent!StudentID & ")"
      lngCapacity = lngCapacity - 1
      rsStudent.MoveNext
      Loop
      rsRoom.MoveNext
      Loop
      End With
      End Sub
      0