Boutons radio pour filtrage d'enregistrements

Bonjour tout le monde.

Je compte commencer à utiliser les boutons radio et je n’ai trouvé aucun tutoriel ni sujet sur différents forums qui se rapproche de ce que je voudrais (pour me faire la main).

Une table comprend 4 colonnes : PER_ID, PER_NOM, PER_PRENOM et PER_GENRE. Le genre est 1 (masculin) ou 2 (féminin).

Le formulaire adéquat comprend un contrôle de table et un groupe de 3 boutons radio pour afficher soit tout le monde, soit les hommes, soit les femmes.

Pour filtrer les hommes, je suppose cette requête :

SELECT * FROM T_PERSONNES WHERE PER_GENRE = 1

Et “= 2” pour les femmes.

Je ne pense pas que ça soit très compliqué mais je ne sais pas aller plus loin.

Merci.

Bonjour @Primus

Cela date mais on peut néanmoins trouver ce tutoriel qui filtre avec boutons radio et listes (plus complet donc).

Si tu as besoin d’explications complémentaires, il serait préférable que tu joignes ta base (sans données personnelles ou confidentielles) pour nous éviter de devoir tout construire ex nihilo…

Cordialement

Le lien que tu indiques m’a bien servi pour apprendre à filtrer des requêtes avec des listes déroulantes. Mais comme les boutons radios du fichier sont utilisées pour des conditions ET et OU, je ne sais pas comment adapter le code à une utilisation plus simple.

Je joins une base exemple où pour l’instant, j’ai paramétré une liste déroulante pour faire le travail (plus un bouton Reset). Ça fait ce qu’on lui demande mais je préférerais des boutons radio pour voir comment on structure ça
test_base_2.odb (18,3 Ko)
.

Ok… de toutes façons le code est ici différent car il y a 3 boutons et on doit donc récupérer le “tableau” des contrôles et “boucler” pour vérifier leur propriété state.

sub PysSelection(oEvt)

dim oForm as object
dim enCours, valeurs() 
dim strSQL As string

oForm = oEvt.source.model.Parent
oForm.getGroupByName("rgp01", valeurs())

for each enCours in valeurs()
	if enCours.state = 1 then
		select case enCours.refValue
			case 1
				strSQL = "SELECT * FROM T_SALARIES"			
			case 2
				strSQL = "SELECT * FROM ""T_SALARIES"" WHERE ""SAL_GENRE"" ='" + 1 + "'"
			case 3
				strSQL = "SELECT * FROM ""T_SALARIES"" WHERE ""SAL_GENRE"" ='" + 2 + "'"
		end select
		exit for
	end if
next 

oForm.Command = strSQL
oForm.Reload

end sub

Je ne trouve pas que ce soit un code très complexe, et surtout, il est compréhensible (contrairement à certaines portions de celui du lien que tu m’as donné).

Encore merci. :slightly_smiling_face: