Pardon, j'avais oublié d'enlever le = devant le Like.
Pardon, j'avais oublié d'enlever le = devant le Like.
Maintenant je voudrais faire la même chose pour le sous formulaire de FrmPersonnel2 (qui est lui-même sous-formulaire de frmPrincipal2).
FrmPersonnel 2 est basé sur une requête ssfrm3 qui contient la table Formation et la table Personnel_formé (table union de PERSONNEL et de FORMATION).
Voilà la source de mon sous-sous formulaire frmPersonnel :
Mais le filtre ne fonctionne pas. J'ai pourtant bien respecté ce que tu as dit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT Formation.TypeFormation, Formation.VisiteMedicale, Formation.AutorisationEmployeur, Formation.Organisme, Formation.SGS, Formation.Observations, Formation.NbHeuresFormation, PersonnelFormé.NumeroPersonnel, PersonnelFormé.NumeroFormation FROM Formation INNER JOIN PersonnelFormé ON Formation.NumeroFormation = PersonnelFormé.NumeroFormation WHERE (((Formation.TypeFormation) Like IIf(Not ([Formation].[TypeFormation])=IsNull([Forms]![FrmPrincipal2]![FiltreParFormation]),[Forms]![FrmPrincipal2]![FiltreParFormation],[Formation].[TypeFormation]) & "*") AND ((Formation.Organisme) Like IIf(Not ([Formation].[Organisme])=IsNull([Forms]![FrmPrincipal2]![FiltreParOrganisme]),[Forms]![FrmPrincipal2]![FiltreParOrganisme],[Formation].[Organisme]) & "*")) ORDER BY Formation.TypeFormation;
Je m'excuse encore, je suis mal réveillé . Je me suis trompé de code. Celui là est mieux mais il ne fonctionne pas non plus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT Formation.TypeFormation, Formation.VisiteMedicale, Formation.AutorisationEmployeur, Formation.Organisme, Formation.SGS, Formation.Observations, Formation.NbHeuresFormation, PersonnelFormé.NumeroPersonnel, PersonnelFormé.NumeroFormation FROM Formation INNER JOIN PersonnelFormé ON Formation.NumeroFormation=PersonnelFormé.NumeroFormation WHERE (((Formation.TypeFormation) Like IIf(Not isnull(Forms!FrmPrincipal2!FiltreParFormation),Forms!FrmPrincipal2!FiltreParFormation,Formation.TypeFormation) & "*") And ((Formation.Organisme) Like IIf(Not IsNull(Forms!FrmPrincipal2!FiltreParOrganisme),Forms!FrmPrincipal2!FiltreParOrganisme,Formation.Organisme) & "*")) ORDER BY Formation.TypeFormation;
*refait surface*
Salut !
Juste par curiosité, je reviens sur ce message : http://www.developpez.net/forums/sho...3&postcount=20
Tu avais cette erreur à la compilation ou à l'exécution ?Envoyé par fpecastaing
(\ _ /)
(='.'=)
(")-(")
juste a l'exécution .
Ok merci. Je pense donc que tu as parfois passé des arguments Null, qui ont été convertis en "" par la fonction Nz, ce qui ne passe pas pour des arguments attendant un type Date ou numérique...
Il fallait donc adapter le deuxième argument de la fonction Nz, en mettant une date ou un nombre par défaut au lieu de ""...
Néanmoins pour une gestion précise des valeurs Null, le plus simple, comme je l'avais dit, est sans doute d'utiliser des arguments de type Variant dans les procédure ApplyFilter. En effet, tu pourras tester si le variable est Null ou même Empty est construire (ou ne pas construire ) ton filtre en conséquence...
Quant à savoir quelle solution choisir entre la mienne et celle de DMboup, la sienne est plus simple c'est sûr. Mais à partir d'un certains nombre de critères facultatifs à gérer, la mienne peut s'avérer plus souple dans l'organisation du code... A toi de voir.
(\ _ /)
(='.'=)
(")-(")
Je suis d'accord, mais avant de se pencher là dessus, qu'est-ce qui ne va pas dans cette syntaxe ?
Il me met erreur de syntaxe et me dit :=
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Commande16_Click() Me.[frm personnel2].Form.ApplyFilter (Nz(Me.FiltreParNom, ""),Nz(Me.FiltreParService, "")) End Sub
Merci
erreur de compilation :=
Pardon !
Salut,
je suis désolé pour cette petite erreur (habitude de VB.NET...) mais il ne faut pas mettre les parenthenses autour des arguments de la méthode car on ne souhaite pas récupérer de résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part [frm personnel2].Form.ApplyFilter Nz(FiltreParNom, ""),Nz(FiltreParService, "")
(\ _ /)
(='.'=)
(")-(")
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager