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 :

Insérer zone de texte dans un état avec valeur critère [AC-2007]


Sujet :

IHM

  1. #1
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut Insérer zone de texte dans un état avec valeur critère
    Bonjour à tous et à toutes,

    Dans un état, peut on insérer une zone de texte où apparait la valeur du critère saisie dans la requête source ?

    Exemple : j'ai un état affichant les nouveaux adhérents depuis une certaine date demandée en critère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [T Adhérents].*, [T Adhérents].DateAdhesion
    FROM [T Adhérents]
    WHERE ((([T Adhérents].DateAdhesion)>=[Date dernier annuaire ?]) AND (([T Adhérents].Adherent)=True))
    ORDER BY [T Adhérents].Nom;
    Dans l'en-tête de cet état, j'ai une étiquette avec le légende suivante :
    Liste des nouveaux adhérents inscrits depuis le
    Plutôt que de saisir à chaque fois la date qui m'intéresse, je voudrais don savoir si, à droite de l'étiquette je pourrais mettre une zone de texte où apparaitrait la date choisie.

    Merci de votre aide.
    A+
    C15

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut,
    Dans les 2 cas de figure tu seras obligé de saisir une date.
    Pourquoi ne pas faire un TOPn ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TOP 10 Adherents.idAdherent, Adherents.*
    FROM Adherents
    ORDER BY Adherents.idAdherent DESC;
    Ton état affichera les 10 derniers inscrits.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Je raisonnerai un peu différemment pour le paramètre.

    Sur l'évènement ouverture de mon état je mettrai le code suivant:

    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
    24
    25
    Private Sub Report_Open(Cancel As Integer)
         On Error GoTo Err
     
        'On déclare une variable
        Dim DateInscription As Date
     
       'On récupère la date souhaitée par l'intermédiaire d'une Inputbox
        DateInscription = InputBox("Veuillez saisir la date de dernier annuaire")
     
        'On crée la requête source de l'état en incluant en critère le résultat de la variable
        Me.RecordSource = "SELECT [T Adhérents].* " & _
                                   "FROM [T Adhérents] " & _
                                   "WHERE ((([T Adhérents].DateAdhesion)>= #" & DateInscription & "#) AND (([T Adhérents].Adherent)= True)) " & _
                                   "ORDER BY [T Adhérents].Nom; " 
     
       'On modifie le texte de l'étiquette en lui ajoutant le résultat de la variable
       Me.NomEtiquette.Caption = "Liste des nouveaux adhérents inscrits depuis le " & DateInscription
     
      Exit_Report_Open:
          Exit Sub
     
      Err:
          MsgBox "Erreur ouverture  " & Err.Number & "  " & Err.Description
          Resume Exit_Report_Open
      End Sub
    Dernière modification par Invité ; 04/06/2018 à 08h07.

  4. #4
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour à tous les deux,

    Merci de vos réponses.

    1 Pour Hyperion13,
    ta réponse est intéressante, mais je dois préciser que pour mon association AHA, j'édite un annuaire complet (200 pages) tous les 2 ans en alternance avec un addendum de 30 pages où n'apparaissent que les modifs depuis le dernier annuaire "principal" (modifications coordonnées, nouveaux adhérents, adhérents partis...).
    Aussi le nombre de modifications varie d'une année à l'autre, les données étant arrêtées fin juin pour l'édition de l'annuaire distribué à l'AG de fin septembre.

    2 Pour Gayot,
    Initialement mon état est basé sur une requête enregistrée dénommée R dernières modifications coordonnées
    Je l'ai modifiée selon ta proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT T_Nouvelles_valeurs.MiseAJour, T_Nouvelles_valeurs.N°Adherent, T_Nouvelles_valeurs.Titre, T_Nouvelles_valeurs.NomAdherent, T_Nouvelles_valeurs.PrenomAdherent, T_Nouvelles_valeurs.Adresse, IIf(Mid([T_Nouvelles_valeurs.CP],3,1)="-",Mid([T_Nouvelles_valeurs.CP],InStr([T_Nouvelles_valeurs.CP],"-")+1),[T_Nouvelles_valeurs.CP]) AS CP, T_Nouvelles_valeurs.Ville, T_Nouvelles_valeurs.Region, T_Nouvelles_valeurs.Pays, T_Nouvelles_valeurs.MasquerDonnees, T_Nouvelles_valeurs.Telephone, T_Nouvelles_valeurs.Fax, T_Nouvelles_valeurs.Mobile, T_Nouvelles_valeurs.EMail, T_Nouvelles_valeurs.DateNaissance, T_Nouvelles_valeurs.Adherent, T_Nouvelles_valeurs.TypeAdherent, T_Nouvelles_valeurs.DateAdhesion, T_Nouvelles_valeurs.Fonction, T_Nouvelles_valeurs.Origine, T_Nouvelles_valeurs.DateOrigine, T_Nouvelles_valeurs.Specialite, T_Nouvelles_valeurs.Profession, T_Nouvelles_valeurs.Divers, T_Nouvelles_valeurs.Retraite, T_Nouvelles_valeurs.DateDeces, T_Nouvelles_valeurs.DateRadiation, T_Nouvelles_valeurs.MotifRadiation, T_Nouvelles_valeurs.Chemin
    FROM T_Nouvelles_valeurs INNER JOIN (SELECT T_Nouvelles_valeurs.N°Adherent, Max(T_Nouvelles_valeurs.MiseAJour) AS MaxDeMiseAJour FROM T_Nouvelles_valeurs GROUP BY T_Nouvelles_valeurs.N°Adherent)  AS Requete1 ON (T_Nouvelles_valeurs.N°Adherent=Requete1.N°Adherent) AND (T_Nouvelles_valeurs.MiseAJour=Requete1.MaxDeMiseAJour)
    WHERE ((([T Adhérents].DateAdhesion)>= #" & DateInscription & "#) AND ((T_Nouvelles_valeurs.MasquerDonnees)=False) AND ((T_Nouvelles_valeurs.Adherent)<>False))
    ORDER BY T_Nouvelles_valeurs.MiseAJour DESC;
    Par contre je ne sais trop comment utiliser la procédure que tu m'as proposée.

    Est ce que j'utilise la requête enregistrée, mais alors que mettre à
    Ou est-ce que je ne mets rien en source de données et mets
    le code ci-dessus ?

    Pour info, j'ai essayé cela mais j'ai un problème de compilation lié a priori à des retours à la ligne intempestifs

    Merci de ton aide.
    A+

    C15

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Il n'y a plus besoin de la requête enregistrée.
    Pour comprendre, j'ai préparé un petit fichier exemple.
    Attention il faut que la requête soit bien orthographiée et que la date critère soit au format US.
    C'est pour cela qu'il y a également une petite fonction de conversion.


    Ouvrir l'état puis saisir par exemple 01/01/2018 dans la InputBox.
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 04/06/2018 à 08h43.

  6. #6
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Je me suis repenché sur le problème. En modifiant la requête source, j'ai un message d'erreur de syntaxe logique puisque la variable DateInscription ne peut en faire partie

    J'ai essayé d'adapter le code proposé selon le code de la requête et l'ai intégré au niveau de Me.RecordSource

    Cela me donne :

    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
    24
    25
    26
    27
    28
    29
    Private Sub Report_Open(Cancel As Integer)
         On Error GoTo Err
     
        'On déclare une variable
        Dim DateInscription As Date
     
       'On récupère la date souhaitée par l'intermédiaire d'une Inputbox
        DateInscription = InputBox("Veuillez saisir la date du dernier annuaire")
     
        'On crée la requête source de l'état en incluant en critère le résultat de la variable
         Me.RecordSource = "SELECT T_Nouvelles_valeurs.MiseAJour, T_Nouvelles_valeurs.N°Adherent, T_Nouvelles_valeurs.Titre, T_Nouvelles_valeurs.NomAdherent, T_Nouvelles_valeurs.PrenomAdherent, T_Nouvelles_valeurs.Adresse, IIf(Mid([T_Nouvelles_valeurs.CP],3,1)=" - ",Mid([T_Nouvelles_valeurs.CP],InStr([T_Nouvelles_valeurs.CP]," - ")+1),[T_Nouvelles_valeurs.CP]) AS CP, " & _
        "T_Nouvelles_valeurs.Ville, T_Nouvelles_valeurs.Region, T_Nouvelles_valeurs.Pays, T_Nouvelles_valeurs.MasquerDonnees, T_Nouvelles_valeurs.Telephone, T_Nouvelles_valeurs.Fax, T_Nouvelles_valeurs.Mobile, T_Nouvelles_valeurs.EMail, T_Nouvelles_valeurs.DateNaissance, T_Nouvelles_valeurs.Adherent, T_Nouvelles_valeurs.TypeAdherent, " & _
        "T_Nouvelles_valeurs.DateAdhesion, T_Nouvelles_valeurs.Fonction, T_Nouvelles_valeurs.Origine, T_Nouvelles_valeurs.DateOrigine, T_Nouvelles_valeurs.Specialite, T_Nouvelles_valeurs.Profession, T_Nouvelles_valeurs.Divers, T_Nouvelles_valeurs.Retraite, T_Nouvelles_valeurs.DateDeces, T_Nouvelles_valeurs.DateRadiation, " & _
        "T_Nouvelles_valeurs.MotifRadiation, T_Nouvelles_valeurs.Chemin " & _
        "FROM T_Nouvelles_valeurs INNER JOIN (SELECT T_Nouvelles_valeurs.N°Adherent, Max(T_Nouvelles_valeurs.MiseAJour) AS MaxDeMiseAJour FROM T_Nouvelles_valeurs Group BY " & _
        "T_Nouvelles_valeurs.N°Adherent)  AS Requete1 ON (T_Nouvelles_valeurs.MiseAJour=Requete1.MaxDeMiseAJour) AND (T_Nouvelles_valeurs.N°Adherent=Requete1.N°Adherent) " & _
        "WHERE ((([T Adhérents].DateAdhesion)>= #" & DateInscription & "#) AND ((T_Nouvelles_valeurs.MasquerDonnees)=False) AND ((T_Nouvelles_valeurs.Adherent)<>False)) " & _
        "ORDER BY T_Nouvelles_valeurs.MiseAJour DESC; "
     
       'On modifie le texte de l'étiquette en lui ajoutant le résultat de la variable
       Me.Étiquette28.Caption = "Modification aux coordonnées des adhérents depuis le " & DateInscription
     
    Exit_Report_Open:
          Exit Sub
     
    Err:
          MsgBox "Erreur ouverture  " & Err.Number & "  " & Err.Description
          Resume Exit_Report_Open
      End Sub
    J'ai
    un message d'erreur "erreur ouverture 13 incompatibilité de type"
    l'état affiche alors 1 seul enregistrement vide ; tous les champs affichent #Nom ?. Cela me parait logique dans la mesure où tous les contrôles ont comme source la T Adhérents
    la légende de l'Etiquette28 n’affiche pas la date saisie dans l'inputbox

    Si je mets en commentaire toutes les lignes de Me.RecordSource
    l'état affiche alors 1 seul enregistrement vide ; tous les champs affichent #Nom ?. Ce qui est toujours logique
    la date s’affiche bien en légende

    Merci de ton aide

    A+

    C15

  7. #7
    Invité
    Invité(e)
    Par défaut
    As tu ouvert le fichier que je viens de mettre en pièce jointe?

  8. #8
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour
    Nos posts se sont croisés !

    J'ai testé ta base exemple, effectivement cela fonctionne
    J'ai copié la fonction ConvertUsdate dans ma base et modifié le code proposé dans mon précédent post comme suit ; j'ai toujours le message incompatibilité de type et mon état est toujours vide.
    Il y a peut-être encore une erreur de syntaxe dans la condition Where

    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
    24
    25
    26
    27
    28
    29
    Private Sub Report_Open(Cancel As Integer)
         On Error GoTo Err
     
        'On déclare une variable
        Dim DateInscription As Date
     
       'On récupère la date souhaitée par l'intermédiaire d'une Inputbox
        DateInscription = InputBox("Veuillez saisir la date du dernier annuaire")
     
        'On crée la requête source de l'état en incluant en critère le résultat de la variable
        Me.RecordSource = "SELECT T_Nouvelles_valeurs.MiseAJour, T_Nouvelles_valeurs.N°Adherent, T_Nouvelles_valeurs.Titre, T_Nouvelles_valeurs.NomAdherent, T_Nouvelles_valeurs.PrenomAdherent, T_Nouvelles_valeurs.Adresse, IIf(Mid([T_Nouvelles_valeurs.CP],3,1)=" - ",Mid([T_Nouvelles_valeurs.CP],InStr([T_Nouvelles_valeurs.CP]," - ")+1),[T_Nouvelles_valeurs.CP]) AS CP, " & _
        "T_Nouvelles_valeurs.Ville, T_Nouvelles_valeurs.Region, T_Nouvelles_valeurs.Pays, T_Nouvelles_valeurs.MasquerDonnees, T_Nouvelles_valeurs.Telephone, T_Nouvelles_valeurs.Fax, T_Nouvelles_valeurs.Mobile, T_Nouvelles_valeurs.EMail, T_Nouvelles_valeurs.DateNaissance, T_Nouvelles_valeurs.Adherent, T_Nouvelles_valeurs.TypeAdherent, " & _
        "T_Nouvelles_valeurs.DateAdhesion, T_Nouvelles_valeurs.Fonction, T_Nouvelles_valeurs.Origine, T_Nouvelles_valeurs.DateOrigine, T_Nouvelles_valeurs.Specialite, T_Nouvelles_valeurs.Profession, T_Nouvelles_valeurs.Divers, T_Nouvelles_valeurs.Retraite, T_Nouvelles_valeurs.DateDeces, T_Nouvelles_valeurs.DateRadiation, " & _
        "T_Nouvelles_valeurs.MotifRadiation, T_Nouvelles_valeurs.Chemin " & _
        "FROM T_Nouvelles_valeurs INNER JOIN (SELECT T_Nouvelles_valeurs.N°Adherent, Max(T_Nouvelles_valeurs.MiseAJour) AS MaxDeMiseAJour FROM T_Nouvelles_valeurs Group BY " & _
        "T_Nouvelles_valeurs.N°Adherent)  AS Requete1 ON (T_Nouvelles_valeurs.MiseAJour=Requete1.MaxDeMiseAJour) AND (T_Nouvelles_valeurs.N°Adherent=Requete1.N°Adherent) " & _
        "WHERE ((([T Adhérents].DateAdhesion)>= #" & ConvertUSDate(DateInscription) & "# ) AND ((T_Nouvelles_valeurs.MasquerDonnees)=False) AND ((T_Nouvelles_valeurs.Adherent)<>False)) " & _
        "ORDER BY T_Nouvelles_valeurs.MiseAJour DESC; "
     
       'On modifie le texte de l'étiquette en lui ajoutant le résultat de la variable
       Me.Étiquette28.Caption = "Modification aux coordonnées des adhérents depuis le " & DateInscription
     
    Exit_Report_Open:
          Exit Sub
     
    Err:
          MsgBox "Erreur ouverture  " & Err.Number & "  " & Err.Description
          Resume Exit_Report_Open
      End Sub
    Merci de ton aide.

    A+

    C15

  9. #9
    Invité
    Invité(e)
    Par défaut
    Où apparait l'incompatibilité de type?
    Difficile pour moi de vérifier le contenu de la requête puisque je n'ai pas les données.

  10. #10
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut C15, salut GAYOT
    Une solution, peut-être un peu plus simple basée sur la sélection d'une date existante via un form
    la liste déroulante (DateAdh) du form calcule les doublons de dates de la tblTest1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT tblTest1.DateTest, Count(tblTest1.DateTest) AS DateAdh
    FROM tblTest1
    GROUP BY tblTest1.DateTest
    ORDER BY tblTest1.DateTest DESC;
    l'état a pour source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT tblTest1.idTest, tblTest1.DateTest
    FROM tblTest1
    WHERE (((tblTest1.DateTest)>=[Formulaires]![f_dial]![DateAdh]))
    ORDER BY tblTest1.DateTest DESC;
    Fichiers attachés Fichiers attachés

  11. #11
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour Hyperion13, bonjour Gayot,

    Mon niveau d'incompétence ne me permet pas actuellement de vérifier quelle est la meilleure méthode des 2 proposées...ni de savoir comment l'appliquer à ma base.

    Pour vous aider, je joins une base édulcorée avec les infos suivantes :

    Le formulaire principal de travail est 0_FORMULAIRE_ADHERENT_AVEC_COTISATIONS_ET_AG

    Les tables historiques des données sont T_Anciennes_valeurs et T_Nouvelles_valeurs

    Pour ce qui fonctionne actuellement on a :

    R dernières modifications coordonnées
    Annuaire des modifications
    OU
    R comparaison T anciennes et T nouvelles
    Annuaire modifs couleur rouge

    Ce qui bloque actuellement :
    Copie de R dernières modifications coordonnées
    Copie de Annuaire des modifications

    Le principe de fonctionnement est le suivant :
    Dans le formulaire, lorsque l'on modifie un élément des coordonnées géographiques et/ou téléphoniques et/ou informatiques, l'ancienne valeur est stockée dans la table T_Anciennes_valeurs, la nouvelle valeur dans la table T_Nouvelles_valeurs

    Pour l'édition de l'annuaire "intermédiaire", une année sur deux comme cela va être le cas fin juin, j'y insère l'état Annuaire des modifications ou mieux l'état Annuaire modifs couleur rouge
    qui ne font apparaitre que la dernière modification des coordonnées.
    Il faut savoir qu'un adhérent peut très bien avoir, depuis la parution du denier annuaire plusieurs modifications (dans un premier temps, il peut déménager et plus tard changer d’opérateur mobile)
    A chaque modification, c'est l'ensemble des coordonnées qui est enregistré, celle qui a changé et celle qui n'ont pas changé.

    Vous aurez compris que ce que je souhaiterais c'est que dans l'en-tête des états apparaisse, de manière automatique, la date du dernier annuaire au lieu de remplacer manuellement, avec le risque d'erreur que l'on devine, la date qui y est actuellement inscrite.

    En espérant avoir été assez clair, je vous remercie de votre aide.

    A+

    C15
    Fichiers attachés Fichiers attachés

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour Hyperion13.
    C'est une autre technique qui peut intéresser C15
    Néanmoins cela donne par exemple une date au 17 du mois (si la date d'enregistrement est le 17). Or en entreprise on aime bien avoir les données statistiques à partir d'un début de mois ou d'année. Or C15 veut des rapports avec la date de début de requête.
    D'autre part la technique de l'inputBox est facile et sujette à pas mal de possibilités ou d'améliorations (cf ici)

    Ce qui me gêne c'est l'incompatiblilté de type comme si le format de date n'était pas bon.
    Ou alors il y a une erreur de syntaxe dans la requête.

  13. #13
    Invité
    Invité(e)
    Par défaut
    J'ai regardé le fichier et l'ai modifié sur l'état Annuaire modifs couleur rouge.
    Regardes si cela te convient.
    Fichiers attachés Fichiers attachés

  14. #14
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour Gayot

    Désolé de répondre avec retard mais j'ai un problème de fuite d'eau à régler en parallèle

    Ce que tu as mis sur l'annuaire modification couleurs me convient parfaitement.
    Par contre j'ai essayé d'appliquer cette procédure pour un autre état et j'ai un problème de syntaxe au niveau des lignes Select

    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
    24
    25
    Private Sub Report_Open(Cancel As Integer)
        On Error GoTo Err
        Dim strSql As String
        Dim DateInscription As Date
     
        DateInscription = InputBox("Veuillez saisir la date de départ des mises à jour au format jj/mm/aaaa ")
     
        strSql = "" & _
        "SELECT [T Adhérents].*, [T Adhérents].MotifRadiation " & _
        "FROM [T Adhérents] " & _
        "WHERE ((([T Adhérents].MotifRadiation) = 'décès') & ConvertUSDate(DateInscription) & "#) & (([T Adhérents].Adherent) = False)) " & _
        "ORDER BY [T Adhérents].DateDeces DESC;"
     
    Debug.Print strSql
        With Me
            .RecordSource = strSql
            .Étiquette172.Caption = "Liste des adhérents décédés depuis le " & Format(DateInscription, "dd/mm/yyyy")
        End With
     
    Fin:
        Exit Sub
     
    Err:
        MsgBox "Erreur ouverture  " & Err.Number & "  " & Err.Description
        Resume Fin
    Merci de ton aide.

    A+

    C15

    End Sub

  15. #15
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut,
    A l'ouverture de ton état tu demandes la saisie d'une date.
    Seul hic, dans ta clause WHERE, tu ne désignes pas de table+champ pour collecter la date saisie !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        strSql = "" & _
        "SELECT [T Adhérents].*, [T Adhérents].MotifRadiation " & _
        "FROM [T Adhérents] " & _
        "WHERE ((([T Adhérents].MotifRadiation) = 'décès') & (([NomDeLaTable.NomDuChamp????) >= # " & ConvertUSDate(DateInscription) & "#) & (([T Adhérents].Adherent) = False))) " & _
        "ORDER BY [T Adhérents.DateDeces] DESC;"

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 801
    Points : 14 869
    Points
    14 869
    Par défaut
    bonjour,
    ne serait-ce pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        strSql = "" & _
        "SELECT [T Adhérents].*, [T Adhérents].MotifRadiation " & _
        "FROM [T Adhérents] " & _
        "WHERE ((([T Adhérents].MotifRadiation) = 'décès') AND (([T_Nouvelles_valeurs].MiseAJour) >= # " & ConvertUSDate(DateInscription) & "#) & (([T Adhérents].Adherent) = False))) " & _
        "ORDER BY [T Adhérents.DateDeces] DESC;"

  17. #17
    Invité
    Invité(e)
    Par défaut
    Ah les problèmes de fuite d'eau....
    Effectivement Hyperion13 et Tee_grandbois t'ont mis sur la piste.
    Les requêtes Vba ont un inconvénient c'est que la moindre erreur de syntaxe se paie cash et n'est pas facile à déceler. La présence de la ligne que tu pourras enlever quand tout fonctionnera peux t'y aider.

    Autre chose: pour te simplifier la vie une petite visite sur ce tutoriel serait la bienvenue:
    https://argyronet.developpez.com/office/vba/convention/


  18. #18
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour à tous,

    En fait il fallait lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
           strSql = "" & _
        "SELECT [T Adhérents].*, [T Adhérents].MotifRadiation " & _
        "FROM [T Adhérents] " & _
        "WHERE ((([T Adhérents].MotifRadiation) = 'décès') AND ([T Adhérents.DateDeces] >= # " & ConvertUSDate(DateInscription) & "#) and (([T Adhérents].Adherent) = False)) " & _
        "ORDER BY [T Adhérents.DateDeces] DESC;"
    Gayot a écrit :
    Effectivement Hyperion13 et Tee_grandbois t'ont mis sur la piste
    Je dirai plus, tous les trois vous m'avez mis sur la voie comme on disait à la SNCF quand c'était le bon temps

    Cette affaire est donc résolue...tout au moins la mienne

    A+

    C15nantes

  19. #19
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut


    J'ai oublié de vous dire merci

    C15nantes

  20. #20
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut C15
    Salut tee_grandbois, salut GAYOT

    Sans remettre en cause le travail, bénévole, de C15 pour l'AHA, je me suis intéressé à son extrait de bdd pour traiter le cycle de vie des adhésions de ces membres.
    J'ai encore en mémoire des cours sur les SI (MCD, MOD, MCTA, MOTA, etc.). C'est préhistorique, certes, me cela permet de savoir comment s'y prendre pour construire un SGDBR

    La finalité de la bdd, traiter les adhésions, le cotisations annuelles, la participation ou non aux AG, les modifications de certaines données personnelles, ainsi que les radiations, quel que soit le motif.

    La tbl T_Adherent mériterait d'être révisée, parce qu'en dehors du traitement des adhésions, on y retrouve, la participation aux AG et le règlement des cotisations avec une ribambelle de CàC. Il faudra ajouter de nouvelles CàC après 2035
    Il aurait été plus sage, à mon avis, de créer des tbl distinctes pour la participation aux AG et le règlement des cotisations
    T_Ag(idAg(NumeroAuto+PK), idAdh(Numérique), Année(Numérique), Date(jj/mm/aaaa), CàC(Participé O/N))
    T_Cot(idCot(NumeroAuto+PK), idAdh(Numérique), Année(Numérique), Det(jj/mm/aaaa), CàC(réglé O/N))

    Plus simple de traiter via des requêtes la participation ou non aux AG, le règlement ou non des cotisations.

    Le form Adhérents mériterait également d'être amélioré. En utilisant des onglets pour distinguer la partie État-civil, cotisations, AG, etc.
    Si à notre jeune âge nous sortions du Centexpn avec 12/10 pour la vue, à l'aube de notre vie, je pense que ce n'est plus le cas.

    Tout comme le traitement des modifications des données personnelles.
    Toujours sans remettre en cause le travail de C15, quelle est la pertinence à vouloir conserver anciennes adresses, anciens num_tél, etc?
    Les nouvelles adhésions et radiations, je veux bien. Mais le reste
    Et quand bien même, pourquoi ne pas utiliser alors la propriété Dirty ? Il y a un article ici.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Source d'enregistrement d'une zone de texte dans un état
    Par beabzh dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/07/2007, 12h22
  2. [ETAT VBA]Formatage de zone de texte dans un état
    Par milou161185 dans le forum IHM
    Réponses: 8
    Dernier message: 27/03/2007, 13h41
  3. Taille d'une zone de texte dans un état sous Access 2003
    Par Petite grenouille dans le forum Contribuez
    Réponses: 4
    Dernier message: 15/05/2006, 19h39
  4. modifier source controle d'une zone de texte dans un état
    Par electrosat03 dans le forum Access
    Réponses: 3
    Dernier message: 20/03/2006, 11h04
  5. Faire pivoter une zone de texte dans un état
    Par YLL dans le forum Access
    Réponses: 3
    Dernier message: 20/02/2006, 20h05

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