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

IHM Discussion :

[Formulaire]filtre sur 4 niveaux de sous-formulaires


Sujet :

IHM

  1. #41
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 8
    Points
    8
    Par défaut
    Pardon, j'avais oublié d'enlever le = devant le Like.

  2. #42
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 8
    Points
    8
    Par défaut
    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 :
    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;
    Mais le filtre ne fonctionne pas. J'ai pourtant bien respecté ce que tu as dit.

  3. #43
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 8
    Points
    8
    Par défaut
    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;

  4. #44
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    *refait surface*

    Salut !

    Juste par curiosité, je reviens sur ce message : http://www.developpez.net/forums/sho...3&postcount=20

    Citation Envoyé par fpecastaing
    Il me dit qu'il attend :=
    Tu avais cette erreur à la compilation ou à l'exécution ?
    (\ _ /)
    (='.'=)
    (")-(")

  5. #45
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 8
    Points
    8
    Par défaut
    juste a l'exécution .

  6. #46
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    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.
    (\ _ /)
    (='.'=)
    (")-(")

  7. #47
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 8
    Points
    8
    Par défaut
    Je suis d'accord, mais avant de se pencher là dessus, qu'est-ce qui ne va pas dans cette syntaxe ?

    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
    Il me met erreur de syntaxe et me dit :=
    Merci

  8. #48
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 75
    Points : 8
    Points
    8
    Par défaut
    erreur de compilation :=

    Pardon !

  9. #49
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    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, "")
    (\ _ /)
    (='.'=)
    (")-(")

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2014, 10h27
  2. [AC-2007] Filtre sur liste déroulante dans sous-formulaire
    Par petitpom dans le forum IHM
    Réponses: 4
    Dernier message: 18/07/2012, 09h41
  3. Réponses: 1
    Dernier message: 28/02/2008, 21h40
  4. Réponses: 8
    Dernier message: 24/11/2006, 15h06
  5. Action sur sous-formulaire filtré
    Par thevenix dans le forum IHM
    Réponses: 4
    Dernier message: 20/06/2005, 00h39

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