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 : 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
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