IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Parcourir un recordset pour un select-Case


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 12
    Points
    12
    Par défaut 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 : 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

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    il faut sortir <Me![ID_Reunion]> de la chaine de caractère pour que la variable retourne son contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    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]
    Question subsidiaire : comment gérer si le recordset est vide ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    If Not rsTh.EOF then
    Do 
        ...
     Loop While Not rsTh.EOF
    else
      ... 'Gestion ici du recordset vide
    endif
    ...
    cordialement,

    Philippe

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup à Philippe,

    Non seulement, il m'a résolu mon problème, mais en plus, il m'a rappelé le caractère de continuation de fin de ligne.

    A bientôt

    Pascal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Syntaxe pour plusieurs Select Case (VbYesNo)
    Par wawa4 dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/05/2012, 21h36
  2. [Débutant] Select Case pour un Textbox et un combobox
    Par Gigli dans le forum VB.NET
    Réponses: 2
    Dernier message: 31/01/2012, 09h19
  3. problème de syntaxe pour select case
    Par bddaccess dans le forum VBA Access
    Réponses: 23
    Dernier message: 23/09/2008, 11h24
  4. recordset select case
    Par boulgiboulga dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/04/2008, 12h01
  5. Select case pour afficher un Etat selon un critère
    Par Sofie109 dans le forum Access
    Réponses: 4
    Dernier message: 06/09/2006, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo