Manipuler une base de données à partir de Visual Basic.
Correction.


Sujet.

Développez votre propre application.

Ce programme devra accéder à une base de données et en afficher le contenu :

Exemple sous Visual Basic fenêtré. Exemple en génération HTML.

Correction de l'exemple sous Visual Basic fenêtré.

Cela suppose que notre feuille dispose des contrôles suivants :

Dim db As Database

Sub Form_Load() ' Remplissage de la liste des artistes
  Dim rsArtiste As RecordSet
  Set db = OpenDatabase("c:\disques.mdb")
  Set rsArtiste = db.OpenRecordset("select * from Artiste order by NomA;")
  LstArtistes.Clear
  While not rsArtiste.eof
    LstArtistes.AddItem rsArtiste("NomA")
    rsArtiste.movenext
  Loop
  rsArtistes.Close
End Sub

Sub LstArtiste_Click()
  Dim rsDisque As RecordSet
  Set rsDisque = db.openrecordset("Select Titre from Disque, Participe, Artiste where NumCD=Part_NumCD and PartNumA=NumA and Noma='" & LstArtistes & "';")
  LstDisques.Clear
  While not rsDisque.eof
    LstDisques.AddItem rsDisque("Titre")
    rsDisque.movenext
  Loop
  rsDisque.Close
End Sub

Sub Form_UnLoad()
  db.Close
End Sub

Correction de l'exemple : génération HTML.

Sub main()
  Dim db As Database, rsArtiste As Recordset, rsDisque as Recordset
  Dim FileNum as Integer
  Set db = OpenDatabase("c:\disques.mdb")
  FileNum = FreeFile
  Open "Mes disques.html" for Output as FileNum
  Print #FileNum, "<html><head></head><body><table border>"
  Print #FileNum, "<tr><th>Artiste</th><th>Albums</th></tr>" 
  Set rsArtiste = db.OpenRecordset("select * from Artiste order by NomA;")
  While not rsArtiste.eof
    Print #FileNum, "<tr><td>" & rsArtiste("NomA") & "</td><td>"
    rsDisque = db.openrecordset("Select * from Disque, Participe where NumCD = Part_NumCD and Part_NumA = " & rsArtiste("NumA") & ";")
    While not rsDisque.eof
      Print #FileNum, rsDisque("Titre") & "<br>"
      rsDisque.MoveNext
    Wend
    rsDisque.close
    rsArtiste.movenext
  Loop
  rsArtiste.Close
  db.Close
End Sub


Sébastien PASTORE.