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 :

Mise en forme conditionnelle vba et sql [AC-2002]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Par défaut Mise en forme conditionnelle vba et sql
    Bonjour à tous,

    Je cherche à mettre un champ de sous form en couleur rouge quand le résultat d'une requête sql, conditionnée par certains champs du sous form, est nul.

    Je me suis inspiré du tuto de Christophe Warin ( sous réserve d'avoir tout compris...)

    Voici mon code ( module et sur gotfocus):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function Est_sans_AVS() As Boolean
    Dim a As Integer
    a = SQL
    'On va chercher si il existe un enregistrement dans la table qui correspond à l'élève et l'année scolaire sélectionnés dans le sous form
     
    SQL = "SELECT Table_affect_AVS.id_affect_AVS FROM Table_affect_AVS WHERE (((Table_affect_AVS.id_eleve)=" & id_eleve & ") AND ((Table_affect_AVS.id_annee_scolaire)=" & id_annee_scolaire & "));"
    Est_sans_AVS = (a = Null) ' on définit la fonction réalisée quant le résultat de la recherche est nul
     
    End Function
     
    Private Sub prenom_eleve_GotFocus()
    prenom_eleve.FormatConditions.Add acExpression, , "Est_sans_AVS(a)=true" 'Quand a(sql) est recherche infructueuse
    prenom.eleve.FormatConditions.Item(0).ForeColor = vbRed 'police du champ se met en rouge
    End Sub
    Un grand merci d'avance à celui ou celle qui viendra me donner un petit coup de pouce...

    PS: j'ai probablement commis des erreurs grossières, n'hésitez pas à me le dire... comme tout grand débutant j'ai besoin de vos lumières.

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut
    Salut,

    Pourquoi ne pas définir les critères de ta mise en forme conditionnelle manuellement:

    Tu sélectionnes les zones de texte à colorier, puis tu définis les critères pour colorier:

    Menu Format puis Mise en forme conditionnelle...

    Condition1

    Expression...Est_sans_AVS([id_eleve],[id_annee_scolaire])=true

    ...

    Avec la fonction modifiée: utilisant un recordset pour tester si la requête source est vide:
    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
     
    Function Est_sans_AVS(id_eleve,id_annee_scolaire) As Boolean
    Dim SQL As String
    Dim rst As DAO.RecordSet ' Le recordSet.
    'On va chercher si il existe un enregistrement dans la table qui correspond à l'élève et l'année scolaire sélectionnés dans le sous form
     
    SQL = "SELECT Table_affect_AVS.id_affect_AVS FROM Table_affect_AVS WHERE (((Table_affect_AVS.id_eleve)=" & id_eleve & ") AND ((Table_affect_AVS.id_annee_scolaire)=" & id_annee_scolaire & "));"
     
    Set rst=currentdb.OpenRecordSet(SQL)
     
    Est_sans_AVS = (rst.eof) ' on définit la fonction réalisée quant le résultat de la recherche est nul
     
    rst.close
    set rst=nothing 
     
    End Function
    A+

    Denis
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Par défaut
    Bonjour Denis,

    Merci pour ce coup de main... ceci dit la boite de dialogue de la MFC me dit que l'expression n'est pas correcte... je ne comprends pas pourquoi la focntion "Est_sans_AVS" n'est pas reconnue alors que le module est modifié en prenant en compte tes modifs ( copier/coller).

    Sébastien

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut
    Re,

    Il faut que ta fonction Est_sans_AVS soit déclarée dans un module indépendant.

    De plus dans l'expression de la mfc,

    il faut que les champs [id_eleve] et[id_annee_scolaire] (dans un formulaire on parle plutôt de zones de texte) soient présents sur ton formulaire.

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 163
    Par défaut
    Bonjour Denis,

    Merci pour ces précisions.
    Concernant le module, il est indépendant me semble-t-il ( catégorie Divers), nommé Module_MFC_affect_avs.

    Concernant les zones de texte du sous form:
    -elles sont bien présentes dans le sous form ( invisibles ) et constituent les deux critères de la clause Where du sql contenu dans la fonction.

    A+

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut
    Salut Seb,

    Essaie avec un ; en les 2 paramètres:

    Condition1

    Expression...Est_sans_AVS([id_eleve];[id_annee_scolaire])=true


    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

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

Discussions similaires

  1. Mise en forme conditionnelle VBA
    Par ptitbow dans le forum Excel
    Réponses: 3
    Dernier message: 26/02/2015, 19h08
  2. mise en forme conditionnelle VBA
    Par eglantine217 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2012, 19h21
  3. [XL-2007] Mise en forme conditionnelle vba
    Par patanar dans le forum Excel
    Réponses: 1
    Dernier message: 17/02/2010, 22h37
  4. Mise en forme conditionnelle VBA en mode tableau
    Par Theranthil dans le forum IHM
    Réponses: 8
    Dernier message: 25/01/2008, 10h52
  5. mise en forme conditionnelle VBA
    Par maverick91 dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/11/2006, 14h16

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