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

Modélisation Discussion :

Comment définir comme valeur par défaut, la valeur de la ligne précédente


Sujet :

Modélisation

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Comment définir comme valeur par défaut, la valeur de la ligne précédente
    Bonjour,
    Nous voulons créer une table pour laquelle la valeur par défaut d'un champ serait la valeur de la ligne précédente pour le même champ.(avec initialisation )
    Est-ce possible ? Et si oui comment procéder ?

    Merci d'avance

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bjr,

    Il n'y a pas de notion de ligne précédente dans une table.

    Tu peux essayer de faire ça au niveau du formulaire à l'insertion d'un nouvel enregistrement en VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Form_BeforeInsert(Cancel As Integer)
    on error goto Gestion_erreurs
    Me.RecordsetClone.AbsolutePosition = Me.CurrentRecord - 1
    Me!MonChamp= Me.RecordsetClone!MonChamp
    Gestion_erreurs:
    if err.number <>0 then msgbox err.description
    End Sub

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Rebonjour,

    On a mis ce programe dans le code mais ca fonctionne pas.

    En fait, on avait penser passer par valeur par défaut qu'on maitriserai mieux que VBA,

    Peut on mettre dans la définition de la valeure:

    =[non du champ]( "et la on mait le numero de la ligne (avec le num auto) -1)

    Je sais pas si c'est possible.

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Je ne pense pas qu'on puisse faire ça avec une valeur par défaut sans VBA.

    Avec Access il arrive toujours un jour où on doit faire un choix :
    - soit utiliser VBA pour programmer de nouvelles fonctionnalités
    - soit abandonner la fonctionnalité voulue...

    J'explique un peu plus ma solution.

    Pour mettre en place le code VBA :
    - ouvrir le formulaire en mode création
    - aller dans ses propriétés
    - dans l'onglet événements, choisir [procédure événementielle] sur l'événement "Avant insertion"
    - cliquer sur les trois petits points [...] à droite de [procédure événementielle]
    - le module de code s'ouvre avec la définition de la procédure pré-remplie
    - il suffit ensuite d'ajouter les lignes à l'intérieur pour avoir le code ci-dessous

    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
     
    ' Code s'exécutant à chaque insertion d'un nouvel enregistrement
    Private Sub Form_BeforeInsert(Cancel As Integer) 
    ' En cas d'erreur, l'exécution "saute" à l'étiquette Gestion_erreurs: en bas
    on error goto Gestion_erreurs
    ' Me.RecordsetClone est un clone du jeu de données affiché sur le formulaire
    ' On se déplace dans ce clone à la ligne courante - 1
    Me.RecordsetClone.AbsolutePosition = Me.CurrentRecord - 1
    ' On remplace le contenu du champ MonChamp dans la ligne courante (celle en cours d'insertion)
    '   par le contenu de la ligne du clone (donc la dernière ligne du jeu de données du formulaire)
    ' Il faut remplacer ici MonChamp par le nom du champ qui doit être mis à jour par défaut
    Me!MonChamp= Me.RecordsetClone!MonChamp
    ' Ci dessous on affiche un message en cas d'erreur
    Gestion_erreurs:
    if err.number <>0 then msgbox err.description
    End Sub
    J'ai commenter le code pour l'expliquer un peu.
    Si le nom du champ comporte des espaces il faudra l'encadrer avec des crochets.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    En fait, pour être précis :
    cela fonctionne à moitié : c'est-à-dire que lors de la saisie dans le formulaire, la date précédente est bien notée. Le hics c'est qu'ensuite la date n'est pas enregistrée dans la table. enfin c'est du moins ce que je constate.
    j'ai regardé sur de nombreux site et de tutoriels et je n'ai rien sur ce sujet, c'est pourquoi je me permet de le poster.
    Je suis dailleurs étonner de ne rien de trouver dessus, car ça pourrait être très pratique lors de la saisie de données (par exemple pour lequels un certains nombres de données se répètent).
    Peut-être y a t-il un autre moyen ?

    Merci encore

    DELPHINE

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    eXCUSE MOI J4AVAIS PAS VU TON POSTE !
    je vais essayé et te tiens au courant ! Merci pour ton aide

    Delphine

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Voilà, apres avoir procédé de la manière que tu as précisée, lorsqu'on ajoute un élément grâce au formulaire, rien ne se passe.
    De plus en ajoutant un MsgBox dans ce bout de code pour verifier qu'il est bien executé, rien ne se passe non plus. J'en déduis donc que le code n'est pas interprété.

    Y a-t'il une procédure supplémentaire pour forcer access à le lire? (de meme j'ai tenté de mettre un point d'arret dans le code pour débugger, mais une fois de plus aucune réaction?)


    En te remerciant de ton aide !!!
    Delphine

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Okay, après bidouillage, Merci pour ton aide si précieuse. Ton code marche très bien. C'est juste moi qui faisait de mauvaises manipulations !(désolé je débute totalement dans l'utilisation d'Access...)

    Merci encore et bonne continuation

    Delphine

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/10/2010, 23h36
  2. [JAXB]Comment faire apparaitre dans le xsd une valeur par défaut pour un attribut
    Par Marcos Ickx dans le forum Persistance des données
    Réponses: 0
    Dernier message: 07/01/2010, 18h38
  3. [GtkTextView] Comment définir un style par défaut ?
    Par SpiceGuid dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 13/11/2008, 18h53
  4. Réponses: 2
    Dernier message: 26/10/2006, 17h52
  5. Réponses: 2
    Dernier message: 27/09/2006, 18h07

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