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 :
Ca ne marche pas. Je pense qu'au niverau références, c'est OK.
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
Question subsidiaire : comment gérer si le recordset est vide ?
Merci si quelqu'un peut m'aider.
Pascal
N.B. : super novice en vba
Partager