Lecture de flux RSS – Episode 7
Suite de la saga « Lecture de flux RSS » : les classes VBA sont en place, il reste à mettre une petite interface graphique par-dessus tout ça !
Si vous avez manqué le début…
La saga « Lecture de flux RSS » a commencé par ces articles :
- Lecture de flux RSS – Episode 1.
- Lecture de flux RSS – Episode 2.
- Lecture de flux RSS – Episode 3.
- Lecture de flux RSS – Episode 4.
- Lecture de flux RSS – Episode 5
- Lecture de flux RSS – Episode 6
Le formulaire
Le formulaire se compose de plusieurs éléments :
- Une liste déroulante indépendante, nommée
cmbFlux
, alimentée par la table tbl Flux. - Un bouton Actualiser (nom :
btnLireFlux
). - Une liste des articles de flux (nom :
lstArticles
). Cette liste sera alimentée dynamiquement par SQL, elle est par défaut basée sur la table tbl Flux Articles. - Une zone d’étiquette (ou label ; nom lblNombreArticles), pour afficher le total des articles du flux.
- Un bouton Afficher l’article (nom :
btnAfficherArticle
).
Par défaut, le formulaire s’ouvre avec :
- la liste déroulante vide (aucun flux sélectionné)
- la liste des articles complète (on affiche tous les articles, tous flux confondus).
Ce comportement peut être adapté s’il ne vous convient pas… 😉
L’avantage est que ça ne demande pas plus de code pour l’instant.
Actualisation de la liste des articles
Vous aurez besoin d’une portion de code pour actualiser la liste des articles (lstArticles
). Ce code pouvant servir plusieurs fois, on en fera une procédure dans le formulaire :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
' --- ' ACTUALISATION DE LA LISTE D'ARTICLES ' --- ' Private Sub ActualiserArticles(ByVal lngFlux As Long) ' Mettre à jour la liste des articles Dim strSQL As String strSQL = "SELECT [Numéro Article], [Titre Article], [Indice], [URL Article]" _ & " FROM [tbl Flux Articles]" _ & " WHERE [Numéro Flux] = " & lngFlux _ & " ORDER BY [Indice]; " Me.lstArticles.RowSource = strSQL ' Afficher le nombre total d'articles Me.lblNombreArticles.Caption = Me.lstArticles.ListCount & " articles" End Sub |
Sélection d’un flux
Lorsqu’un flux est sélectionné dans la liste déroulante cmbFlux, il faut mettre à jour la liste des articles, en appelant le code précédent. Ce qui donne :
1 2 3 4 5 6 7 8 |
' --- ' SELECTION D'UN FLUX ' --- Private Sub cmbFlux_AfterUpdate() If Me.cmbFlux.ListIndex > -1 Then ActualiserArticles Me.cmbFlux.Value End If End Sub |
Mise à jour d’un flux
Le bouton Actualiser force la mise à jour d’un flux, c’est-à-dire la recherche de nouveaux articles sur le Web. Son code utilise les modules de classe écrits précédemment :
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 |
' --- ' LECTURE D'UN FLUX ' --- ' Private Sub btnLireFlux_Click() ' Est-ce qu'un flux est bien sélectionné ? If Me.cmbFlux.ListIndex < 0 Then MsgBox "Sélectionnez un flux au préalable !", vbInformation Exit Sub End If ' Le lecteur RSS Dim rss As LecteurRSS Set rss = New LecteurRSS ' Numéro et adresse du flux rss.NumeroFlux = Me.cmbFlux.Value rss.URL = Nz(DLookup("[URL]", "tbl Flux", _ "[Numéro Flux] = " & rss.NumeroFlux), "") If rss.URL = "" Then MsgBox "Adresse du flux vide !", vbExclamation Exit Sub End If ' Lecture du flux If rss.EnregistrerArticles(True) Then ActualiserArticles rss.NumeroFlux Else MsgBox "Impossible de lire le flux !", vbExclamation End If ' Libérer les objets ! Set rss = Nothing End Sub |
Vous pouvez maintenant ouvrir le formulaire, choisir un flux, et cliquer sur le bouton Actualiser. La liste des articles devrait s’afficher à l’écran.
C’est tout… pour le moment ! 🙂