Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2011, 15h40   #1
Nouveau Membre du Club
 
Homme Mickaël
Dessinateur industriel
Inscription : décembre 2010
Messages : 61
Détails du profil
Informations personnelles :
Nom : Homme Mickaël
Localisation : France

Informations professionnelles :
Activité : Dessinateur industriel
Secteur : Industrie

Informations forums :
Inscription : décembre 2010
Messages : 61
Points : 31
Points : 31
Par défaut Checkbox et champs oui/non

Bonjour,

Etant débutant dans le domaine, je tente de m'exercer sur la création de bases interfacées en m'inspirant fortement de l'excelent tutoriel Recherche multi-critères de Mr CHARLES A.

Néanmoins je me heurte à quelques difficultés. Sur mon formulaire, j'ai ajouté une checkbox (chkCompa) qui doit me servir à filtrer les données présentes dans un champ de type Oui/Non.

Concrêtement, si ma checkbox est cochée, je souhaite voir uniquement les entrées correspondant à "Oui" dans mon champ "Compatibilité"

Je fais quelque chose de similaire avec des combobox (voir cboFormat), mais je n'arrive pas à l'adapter pour les checkbox. Ex:

Code :
1
2
3
SQL = "SELECT No, Titre, Genre, Format, Compatibilité FROM Attributs Where Attributs!No <> 0 "
SQL = SQL & "And Attributs!Format = '" & cboFormat & "' "
SQL = SQL & "And Attributs!Compatibilité like '*" & chkCompa & "*' "
J'avoue ne pas comprendre la manière dont fonctionne le bout de code suivant:

C'est peut être ce qu'il me manque trouver une solution. Si quelqu'un pouvait tenter de m'expliquer cette syntaxe, je lui en serait très reconnaissant. Je comprends qu'on récupère le contenu de notre variable SQL et qu'on semble associer le contenu de la combobox (dans cet exemple) au champ Format. Ce qui le fait agir tel un filtre, mais ce n'est pas très clair pour moi.

Je vais profiter de ce post pour exposer un autre petit problème. Lorsque je liste mes données dans ma listbox (issues de la table Attributs * ), tout fonctionne à un détail prêt. Ma colonne "Genre" m'affiche la clé isssue de ma sélection plutôt que la valeur qui lui est associée:

Je vois: Genre!N°
Alors que je souhaiterais voir: Genre!Genre

Visiblement c'est du au fait que le champ Attribut!Genre est une liste de choix liée à Genre!Genre et que de ce fait, le type de donnée du champ Attributs!Genre est réglé sur Numérique. Je pense que la solution est toute bête mais je n'ai pas encore réussi à la trouver.

Merci d'avance pour votre aide.
Cordialement.

*: Code de remplissage de la list box:
Code :
SELECT Attributs.[No], Attributs.Titre, Genre.Genre, Attributs.Format, Attributs.Compatibilité FROM Genre INNER JOIN Attributs ON Genre.N°=Attributs.Genre;
Ce qui me paraissait logique pour remédier à mon problème (mais qui ne fonctionne pas):
Code :
SELECT Attributs.[No], Attributs.Titre, Genre.Genre, Attributs.Format, Attributs.Compatibilité FROM Genre INNER JOIN Attributs ON Genre.Genre=Attributs.Genre;
Vhalar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 15h54   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 254
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 254
Points : 1 870
Points : 1 870
Bonjour,

Tout d'abord évite de choisir des noms de variable qui sont des mots clés (format, no...), qui ont des espaces ou des caractères spéciaux (°...)

Si la variable format est du texte, la cause where doit être par exemple
Code :
format like '*montexte*'
Si "montexte" est le contenu de mavariable cela s'écrit donc pour valoriser une variable texte :
Code :
machaine = "where format like '*" & mavariable & "*'"
Pour faire le même type d'opération avec du numérique il ne faut bien sûr pas de ', par contre selon les pays il faut convertir les , en .

Enfin pour le faire avec des booleens il faut utiliser (true ou -1) et (false ou 0). Par exemple :
Code :
machaine = "where monbooleen=" & iif(mavariable,"true","false")
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 15h58   #3
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Un simple

Code :
" And Attributs!Compatibilité " & cint(me.chkCompa) & "...."
Transforme la valeur 'Vrai' ou 'Faux' renvoyé par -1 ou 0.


Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h56.


 
 
 
 
Partenaires

Hébergement Web