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 :

Champs - Valeur par défaut


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut Champs - Valeur par défaut
    Bonjour,
    est-il possible de définir une valeur par défaut pour un champs de type Texte avec le résultat d'une requête ?
    Actuellement, dans la propriété "Valeur par défaut" je rentre ma requete (qui me renvoie un résultat si je l'exécute) et en enregistrant ma table j'ai le message suivant:
    L'objet est incorrect ou n'est plus défini
    Erreur pendant l'opération de sauvegarde

    Avez-vous une idée ?
    Merci

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Pas au niveau des tables... ce n'est pas fait pour cela. Mais au niveau des formulaires oui. Tu peux même utiliser VBA et les recordset

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Merci, j'ai trouvé.
    Il y a quand même un détail qui me chagrine.
    En effet la requete en question renvoie la valeur "A".
    Et quand on souhaite ajouter un enregistrement via le formulaire, on n'a pas la valeur "A" mais plutôt le texte suivant #Nom*?

    Par contre dès qu'on saisi au moin une valeur d'un des champs du formulaire, On obtient bien "A" dans le champs en question.
    Comment faire pour avoir cette valeur dès le début ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Est-ce que j'ai été clair ?
    Merci

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 344
    Points : 19 590
    Points
    19 590
    Billets dans le blog
    65
    Par défaut
    Salut,

    Quel critère pour ta requête ?

    Peux tu nous donner le sql de ta requête ?

    Ton critère ne dépend-il pas d'une valeur d'un champ dans le form ou dans la table source du form qui est nulle au moment de l'ajout ?

    tu peux aussi utiliser un truc du style DLookup("Champ";"Table";Critère)
    pour valeur par défaut.

    @+

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Merci pour ta réponse,

    la requete est la suivante:

    SELECT parameter.Value
    FROM parameter
    WHERE parameter.name_parameter="PEOPLE";

    Elle renvoie toujours la valeur A. Le résultat n'est jamais nul.


    Extrait de mon formulaire :
    Textbox1 RefName >> A (la valeur ci-dessus)
    Textbox2 RefNumber>> Contient un nombre
    Textbox3 Comment >> Contient un commentaire

    Ce que je voudrai dans mon formulaire, c'est que dès que je me place sur le denier enregistrement de la table (accessible avec le bouton en bas à gauche du form >*) c'est que ce soit A qui soit affiché par défaut. OR c'est #Nom*? qui apparait dans Texbox1.

    La valeur A apparaît seulement quand je sais dans Textbox2 ou Textbox3 ...

    J'espère que c'est plus clair.

    Merci

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 344
    Points : 19 590
    Points
    19 590
    Billets dans le blog
    65
    Par défaut
    Tu as essayé en manuel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1.DefaultValue==DLookUp("Value";"parameter";"name_parameter='PEOPLE'")
    @+

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Merci, j'ai essayé de mettre ce code dans l'évenement load du form.
    Mais cela ne marche pas, j'ai toujours la valeur #Nom*? quand je me place sur un nouvel enregistrement.

    Je ne suis pas sûr que vous voyez ce que j'entends par nouvel enregistrement:

    EX:
    Dans ma table j'ai 2 enregistrements, donc en naviguant dans mon formulaire connecté à cette table, j'ai la possibilité à l'aide des flèches de navigation en bas à droite de me déplacer sur l'enreg 1, puis 2 mais aussi 3. En effet je n'ai que 2 enregistrements dans ma table mais l'enregistrement 3 correspond en fait à un nouvel enregistrement que l'on souhaite ajouter
    Cet enregistrement 3 est directement accesible quand on clique sur le bouton >* se situant toujours en bas à droite du formulaire.

    Bon j'espère que c'est plus clair

    En fait je pense que l'idéal pour moi serait de pouvoir controler l'evènement qui consiste à se placer sur l'enregistrement 3 avant d'ajouter un enreg à la table.

    J'ai regardé les évenements au niveau du form mais je n'ai rien trouvé. Je pense que vous pourrez m'aider à ce propos.
    Merci

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 344
    Points : 19 590
    Points
    19 590
    Billets dans le blog
    65
    Par défaut
    Salut,

    Pour ton info, le:
    TextBox1.DefaultValue=DLookUp("Value";"parameter";"name_parameter='PEOPLE'")

    Chez moi ca marche quand j'ajoute 1 nouvel enregistrement,
    C'est à dire quand je click sur >* en bas du form, Mon TextBox1 à la valeur "A". (enfin avec ma table).

    Regarde sur open ou load de ton form si tu n'as pas laissé du code qui met à jour TextBox1.

    Regarde si le champs de ta table lié à TextBox1 ne contient pas une expression comme valeur par défaut:

    Mode création de la table >> propriétés du champ >> Valeur par défaut..

    @+

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    OK cool je vais essayer, mais dis moi dans quel évènement met tu ce code ?

    Aussi j'aimerais savoir comment on fait pour traquer l'évenement ajout d'un nouvel enregistrement dans un formulaire lié, ça peut toujours servir.

    Merci

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 344
    Points : 19 590
    Points
    19 590
    Billets dans le blog
    65
    Par défaut
    Par sur un évènement, mais en mode création tu mets la propriété Valeur par défaut de ton textBox1 à:
    DLookUp("Value";"parameter";"name_parameter='PEOPLE'")


    Sinon tu peux aussi utiliser du code VBA sur l'évènement BeforInsert de ton form

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    OK Super ça marche, je l'avais pas mis dans les propriétés.

    Sinon sais tu traquer l'évènement "nouvel enregistrement" comme j'ai dis ci-dessus?

    Il s'agirait presque du BeforeInsert dont tu parles, mais après l'avoir testé, je me rend compte que celui-ci ne se déclenche que lorsque on saisi au moin une valeur du formulaire.
    Or j'ai des bouttons a griser dès lors qu'il s'agit d'insérer un nouvel enregistrement et donc dès qu'on se positionne sur celui-ci.
    Merci beaucoup

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 344
    Points : 19 590
    Points
    19 590
    Billets dans le blog
    65
    Par défaut
    Hello,

    si tu as 1 Textbox par ex TextBox2 dont tu es sur qu'il est nulle quand tu clicke sur >* alors tu peux faire on current de ton form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_Current()
     
       If IsNull(Me.TextBox2) Then
       Me.Bouton1.Enabled=False
       else
       Me.Bouton1.Enabled=True   
       End If
     
    End Sub
    @+

  14. #14
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    Tu as aussi Me.newrecord pour savoir si tu est sur un nouvel enregistrement ou pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Form_Current()
     
       If Me.NewRecord then
          '  c'est un nouvel enr.
       else
         ...
       endif
    Salut,

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Merci à vous, c'est bien l'évenement form_current() que je cherchais.


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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/09/2009, 14h43
  2. SQL : Nouveau Champ - valeur par défaut
    Par chim33 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/06/2006, 14h41
  3. [CR] valeurs par défaut d'un champ parametre auto
    Par FUNZIE dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 30/03/2005, 14h41
  4. [SQL - Access] Valeur par défaut d'un champs
    Par Demiurge dans le forum Access
    Réponses: 2
    Dernier message: 11/02/2005, 17h16
  5. Valeur par défaut d'un champ date
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2004, 12h48

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