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

Requêtes et SQL. Discussion :

Formulaire instantané #Nom? [AC-2003]


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2010
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 61
    Par défaut Formulaire instantané #Nom?
    Bonjour,

    Alors voila j'ai crée un formulaire instantané basé sur ma table T_Candidat recensant diverse informations.

    Mon problème est le suivant, je n'arrive pas à faire afficher l'âge de la personne concernée car c'est un champ calculé dans une requête et je n'arrive pas à remonter l'information dans ce formulaire instantané.

    J'ai essayé de mettre ça dans la source contrôle de ma case "Age" :

    R_Calcul_Age étant ma requête calculant l'âge en fonction de la date de naissance de la personne.

    Dans mon formulaire instantané, ayant la date de naissance de la personne, j'ai directement essayé de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = Année(Maintenant())-Année(F_Instantané_Candidat.date_de_naissance)+(Format(F_Instantané_Candidat.date_de_naissance)>Format(Maintenant()))
    mais dans les deux cas il me renvoi une case dans laquelle je peux voir :
    " #Nom? "


    J'ai même essayé de faire un code que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Load()
     
    Me.age.ControlSource = "SELECT R_Calcul_Age.age " & _
                                "FROM T_Candidat " & _
                                    "LEFT JOIN R_Calcul_Age ON T_Candidat.candidat_id = R_Calcul_Age.candidat_id"
     
    End Sub
    Idem, j'obtiens dans ma case : " #Nom? "

    Savez-vous d'où vient mon problème.

    Merci d'avance.

    @+
    Vapo

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    bonjour,
    dans un champ de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    age: diffdate("yyyy";[date de naissance];now)

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Par défaut
    bonsoir,
    quelques exemples de calcul directement dans le formulaire candidat, sur un formulaire indépendant avec ref au 1er formulaire a condition qu'il soit ouvert en meme temps et sur le même formulaire un calcul sur un champ en faisant reférence à la requête calcul et basé sur le candidat affiché (attention la référence est sur la clé primaire cachée N° et pas sur le NOM affiché).
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Inscrit en
    Février 2010
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 61
    Par défaut
    Helas, le calcul de l'âge j'ai déjà réussi à le faire, ce qu'il me manque c'est de remonter cette information dans un formulaire.

    LE VIEUX, merci ces informations me sont très utiles, ce que je ne connaissait pas c'est l'instruction Dlookup qui peut m'être très utile.
    J'ai donc réussi à faire afficher l'âge dans mon formulaire instantané basé sur ma table candidat avec le code suivant (sur l'évènement chargement du formulaire) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Load()
     
    Me.AgeRequette = DLookup("AgeReq", "R_Calcul_Age", "candidat_id")
     
    End Sub
    Mais j'ai un problème, c'est que pour n'importe quel enregistrement il m'indique 20 ans, soit l'âge de mon premier enregistrement...
    D'où cela peut-il venir? Il faut que je fasse quelque chose sur l'évènement RefreshQuery, non ???

    [EDIT] : Ha non je pense que le problème vient de mon argument "critère" de ma fonction DLookup, non ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    La fonction DLookup prend le premier enregistrement qu'elle trouve par rapport à un critère, hors ton critère est mauvais, car il n'y a pas de tests.

    J'ai fait un tuto sur les fonctions de domaines, voir dans ma signature il y a un lien pour ceux-ci.

    En revenant à ton premier message, je pense que [R_Calcul_Age] est le nom de la requête qui alimente ton formulaire, si c'est le cas, mets juste l'âge pour voir.

    Philippe

  6. #6
    Membre averti
    Inscrit en
    Février 2010
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 61
    Par défaut
    Non, c'est ma table T_candidat qui alimente ce formulaire instantané...
    Merci, je file voir tes tuto

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

Discussions similaires

  1. Formulaire et nom de fichier
    Par rodgeur62 dans le forum Débuter
    Réponses: 2
    Dernier message: 15/06/2008, 21h56
  2. Formulaire (TextBox Nom, Prenom, etc...)
    Par kazylax dans le forum VB.NET
    Réponses: 15
    Dernier message: 10/07/2007, 12h55
  3. [FORMULAIRE][VBA]nom de formulaire variable
    Par Sephiroth_ttt dans le forum VBA Access
    Réponses: 3
    Dernier message: 23/05/2007, 15h31
  4. Champ de formulaire avec nom de la forme a[b][c][x]
    Par Baldurien dans le forum Struts 2
    Réponses: 5
    Dernier message: 01/03/2007, 17h47
  5. Modif sur formulaire instantané
    Par xboulney dans le forum Access
    Réponses: 4
    Dernier message: 01/03/2006, 16h04

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