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 :

Initialisation d'un enregistrement : Problème


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut Initialisation d'un enregistrement : Problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande4532_Click()
    Dim EOTP_copie As String
    Dim Année_copie As Variant
    Dans un sous-formulaire, j'ai écris le code suivant (exécuté depuis un bouton de commande). il doit mettre à jour un novel enregistrement en l'initialisant avec les valeur de l'enregistrement de départ. la première valeur est bien initialisée (ici EOTP) mais pas la seconde qui prend sa valeur par défaut .

    Que faut-il faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    EOTP_copie = Forms![Lot par affaires].Form![Lot par affaire Sous-formulaire]![EOTP].Value
    Annee_copie = Forms![Lot par affaires].Form![Lot par affaire Sous-formulaire]![Année].Value
    DoCmd.GoToRecord , , acNewRec
    Forms![Lot par affaires].Form![Lot par affaire Sous-formulaire]![EOTP].Value = EOTP_copie
    Forms![Lot par affaires].Form![Lot par affaire Sous-formulaire]![Année].Value = Annee_copie

    PS : dans l'ordre inverse des variables cela fonctionne !!

  2. #2
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Bonsoir,

    Pourquoi choisir une solution acrobatique alors que la solution la plus simple existe et valide?!
    D'après l'écriture de ton code, le bouton devrait être sur le formulaire principal, non? Mais qu'à cela ne tienne, le fait qui me dérange c'est l'utilisation de Value car tu voulais en quelque sorte pré-remplir le contenu de ces deux contrôles avec la valeur de ces contrôles dans l'enregistrement précédent ou celui en cours, n'est-ce pas?
    Mois je préférerais l'utilisation de la propriété DefaultValue à Value (tout court) car aisni je ne serai pas obligé d'annuler ma saisie. Avec value, un nouvel enregistrement est en cours de création ce qui m'oblige à faire ECHAP (avant sa validation) si je ne veux pas de l'enregistrement.
    La définition des valeurs par défaut sera réalisée lorsque l'événement Sur Sortie du contrôle est annoncé. Ainsi, le bouton de commande ne devrait faire que l'ajout d'un nouvel enregistrement.
    Le code suivant est à ajouté dans l'événement Sur Sortie des contrôles EOTP et Année
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'pour EOTP
    Me.EOTP.DefaultValue = "'" & nz(Me.EOTP,"") & "'"
    'Pour Année
    Me.Année.DefaultValue = nz(Me.Année, Year(Date))
    Bon courage et @+

    PS: Si cela fonctionne dans l'ordre inverse, pourquoi n'adoptes-tu pas cet ordre?

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Mahefasoa: j'apprécie ta facon de procéder; j'en prends note et je mettrais à profit, merci. rien a redire si ce n'est que mettre tout ca dans l'événement 'Après MAJ' du form offre un + plus, puisqu'il se déclanche après la maj de l'enregistrement.

    toutefois cela entraine une initialisation de la propriété DefaultValue en ouverture de form ou après le déclanchement d'un évènement comme 'sur Activation' ou l'obligation d'une saisie pour initialiser les nouvelles valeurs.

    si l'ajout d'un enregistrement est suite à un déplacement dans des enregistrements et que les valeurs initiales ne sont pas saisies, l'intialisation et l'utilisation de DefaultValue n'est pas justifié à mon avis.
    ex: je recherche un enregistrement et puis je veux le dupliquer.

    autrement pam-pg par curiosité, et pour m'en convaincre, j'ai essayé de reproduire ton erreur, mais je ne suis pas arrivé, je n'ai pas crée de sous form mais je crois pas que cela vienne de cela.
    s'il n'y a pas d'événement qui se déclenche il n'y a pas de raison que cela se produise dans un ordre ou un autre.
    sinon je serais bien curieux de voir ca et je pense pas être le seul.

Discussions similaires

  1. VSAM initialisation - delete d'enregistrements
    Par coderetour0 dans le forum z/OS
    Réponses: 8
    Dernier message: 10/02/2012, 15h48
  2. Réponses: 3
    Dernier message: 07/10/2008, 11h23
  3. requête sans enregistrement problème ouverture
    Par likinter dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/09/2008, 16h24
  4. initialisation d'un tableau probléme
    Par id.prog dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 11/04/2008, 10h27
  5. Réponses: 4
    Dernier message: 14/06/2006, 13h52

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