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

Access Discussion :

Modifier la recherche basée sur la technique du père/fils [AC-2013]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut Modifier la recherche basée sur la technique du père/fils
    Bonjour,

    J'ai réaliser le tuto "Un formulaire de recherche basé sur la technique du père/fils" de Claude Leloup (que je remercie, ça fonctionne du tonnerre) mais j'aimerais rajouter un bout de code pour filtrer un champ date d'une date à une date.

    J'ai rajouter un champ indépendant "DeDate" et un autre "ADate" mais je bloque complétement sur le comment rajouter un filtre Where [Date] Between [DeDate] And [ADate].

    J'espère être clair et que quelqu'un pourra m'aider.

    Voici la portion de code de Claude :

    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
    17
    18
    19
    20
    21
    22
    23
    Public Sub Actu()
      On Error GoTo GestionErreurs
      Dim ctl As Control
      Me(sConteneur).LinkMasterFields = ""
      Me(sConteneur).LinkChildFields = ""
      For Each ctl In Me.Controls
         If Left(ctl.Name, 6) = "filtre" And Not IsNull(Me(ctl.Name)) Then
             Me(sConteneur).LinkChildFields = Me.Indices.LinkChildFields _
                 & "[" & Right(ctl.Name, Len(ctl.Name) - 6) & "];"
             Me(sConteneur).LinkMasterFields = Me.Indices.LinkMasterFields _
                 & "[" & ctl.Name & "];"
     
         End If
      Next ctl
      Exit Sub
    GestionErreurs:
      Select Case Err.Number
        Case 2335  'survient à partir de la 2e affectation d'un champ fils (sans conséquence)
          Resume Next
        Case Else
          MsgBox "Erreur dans Sub Actu : " & Err.Number & " " & Err.Description
      End Select
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour et merci pour l'intérêt !

    Pour filtrer une période, je ne vois pas comment en sortir par la technique du père/fils.

    Connais-tu cet autre tutoriel http://claudeleloup.developpez.com/t...-multicritere/, il est aussi d'une application facile et il y a précisément un exemple pour une recherche de date à date.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Quoique !

    À la réflexion, on pourrait sans doute bricoler un mix des deux méthodes "sur mesure".

    Il "suffit" d'ajouter deux contrôles indépendants "DeDate" et "ADate" dans le formulaire principal et de faire référence au contenu de ces champs dans la source du formulaire.


    Si tu peux fournir ta BdD au format Access2000, je te construirai un exemple.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Voici, j'ai remplacé la source du formulaire par ceci, pour faire référence au contenu des contrôles DeDate et ADate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Indices_Tble_locale.*
    FROM Indices_Tble_locale
    WHERE (((Indices_Tble_locale.Date)>=Nz([Formulaires]![Indices Père]![DeDate],#1/1/1900#) And (Indices_Tble_locale.Date)<=Nz([Formulaires]![Indices Père]![ADate],#1/1/2900#)))
    ORDER BY Indices_Tble_locale.Date DESC , Indices_Tble_locale.Lieu;
    J'ai modifié le code du clic sur Afficher tout, et après mise à jour de DeDate et ADate.
    Fichiers attachés Fichiers attachés
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    Salut,

    Je te remercie pour ta promptitude, tout juste impressionnant !

    J'ai par contre une erreur au lancement du formulaire Père "Erreur dans Sub Actu : 3464 Type de données incompatible dans l'expression du critère"

    Une idée ?

    Pascal

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juillet 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    Les mystères de l'informatique, j'ai fait une correction dans "Sub Form_Open" juste pour rajouter une remarque, j'ai compilé est ... tout est OK plus d'erreur ...

    Donc au final un grand merci et une bonne soirée.

    Pascal

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

Discussions similaires

  1. [Toutes versions] [Tutoriel] Un formulaire de recherche basé sur la technique du père/fils
    Par ClaudeLELOUP dans le forum Access
    Réponses: 20
    Dernier message: 12/04/2019, 09h48
  2. Réponses: 5
    Dernier message: 06/01/2013, 20h19

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