Parcourir un recordset pour un select-Case
Bonjour,
Je vais essayer d’exposer clairement mon problème. Désolé, si c’est trop long à lire. J’ai une base Access 2000, qui gère des réunions pour des associations.
Du point de vue tables, les choses s’organisent de la façon suivante :
- Table Associations : avec un identifiant au format texte + infos classiques
- Table Réunions (Reunions_01) :
Identifiant réunion = num auto (ID_Reunion).
+ Code_Assoc
Autres infos : date, lieu, etc..
Liaisons : 1 assoc = plusieurs réunions
-Table Thématiques (Reunion_02_Themes) : identifiant = numérique issu d’une table servant de liste de choix C_Reu_Thema
+ ID_Reunion
Liaisons : 1 réunion = plusieurs thématiques
Ce que je fais : j’ouvre mon formulaire associations qui comporte une liste des réunions. Un bouton me permet d’ouvrir un formulaire attaché qui donne les détails sur cette réunion sélectionnée.
En fonction des thématiques traitées, j’ai plusieurs onglets correspondants.
Ce que je souhaite faire : afficher certains onglets du formulaire Détails-Réunion en fonction des thématiques de la réunion. Par défaut, certains onglets sont invisibles. Je veux donc les rendre visibles en fonction des thématiques.
Ce que j’ai essayé de faire (et merci à la FAQ) :
Sur ouverture du formulaire, voici mon code :
Code:
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
| Dim db As DAO.Database
Dim rsTh As DAO.Recordset
Dim chSQL As String
Dim libTh As String
Set db = CurrentDb()
chSQL = "SELECT Reunion_02_Themes.C_Reu_Thema AS Lib FROM Reunion_02_Themes WHERE Reunion_02_Themes.C_Reu_Thema_Choix_Reunion= Me![ID_Reunion];"
Set rsTh = CurrentDb.OpenRecordset(chSQL, dbOpenTable)
Do While Not rsTh.EOF
libTh = rsTh.Fields("Lib").Value
'traitement des onglets à afficher en fonction des thèmes évoqués
Select Case libTh
Case 15
Me.PageStatuts.Visible = True
Case 20
Me.PageDisso.Visible = True
Case Else
End Select
rsTh.MoveNext
Loop
rsTh.Close
Set rsTh = Nothing
db.Close
End Sub |
Ca ne marche pas. Je pense qu'au niverau références, c'est OK.
Question subsidiaire : comment gérer si le recordset est vide ?
Merci si quelqu'un peut m'aider.
Pascal
N.B. : super novice en vba