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 :

dupliquer champs dans nouvel enregistrement


Sujet :

IHM

  1. #1
    Membre du Club
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Points : 67
    Points
    67
    Par défaut dupliquer champs dans nouvel enregistrement
    Bonjour à tous,

    J'ai une base sous 2007 qui me sert à noter des réglages et un formulaire qui affiche ces réglages.

    Je voudrais que lorsque je crée un nouvel enregistrement certains champs soient automatiquement remplis dans le nouvel enregistrement en prenant la valeur de l'enregistrement précédent.

    Au lieu de partir d'un form vide je voudrais dupliquer la majeure partie des champs.

    J'ai essayé de jouer avec les valeurs par défaut mais je n'arrive à rien de bien concluant.

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour et bienvenue chez nous,


    J'ai essayé de jouer avec les valeurs par défaut, mais je n'arrive à rien de bien concluant.
    C'est dans l'événement Sur activation de ton formulaire que tu dois... « jouer » : un code pour transférer les valeurs de l'enregistrement actif dans les propriétés « Valeur par défaut » (DefaultValue).

    Explique, ce que tu as fait.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre du Club
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    J'ai trouvé ca sur un site US mais c'est la ou il faut mettre un bouton par controle d'après ce que j'ai compris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (Q)    How do I carry forward the current value of a control so that it's automatically entered for all new records?
     
    (A)    To use the curent control value for new records, you need to assign it to the defaultvalue of the control. For example something like
     
    '******** Code Start **********
        const cQuote=""""    'Thats two quotes
        me!Control.DefaultValue = cQuote & me!Control.Value & cQuote
    '******** Code End **********
        would carry the current value of the control forward if you place this code behind a command button to conditionally run it.
    Donc je chercherai une solution pour effectivement mettre la valeur par défaut à celle de l'enregistrement précédent car cela ma parait une bonne idée mais sa avoir à cliquer un bouton à chaque controle et à chaque enregistrement.

    Merci de votre aide.

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Que veux-tu faire exactement ?
    Qu’appelles-tu l’enregistrement précédent ?
    Est-ce le dernier que tu as affiché à l’écran ?

    Vois un exemple en PJ, où j’utilise ce code :

    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
    Option Compare Database
    Option Explicit
     
    Private Sub Form_Current()
      Me.ControleDeTypeNumerique.DefaultValue = Me.ControleDeTypeNumerique
      Me.ControleDeTypeTexte.DefaultValue = """" & Me.ControleDeTypeTexte & """"
      Me.ControleDeTypeDate.DefaultValue = "#" & Format(Me.ControleDeTypeDate, "mm/dd/yy") & "#"
    End Sub
     
    Private Sub ControleDeTypeDate_AfterUpdate()
      Me.ControleDeTypeDate.DefaultValue = "#" & Format(Me.ControleDeTypeDate, "mm/dd/yy") & "#"
    End Sub
     
    Private Sub ControleDeTypeNumerique_BeforeUpdate(Cancel As Integer)
      Me.ControleDeTypeNumerique.DefaultValue = Me.ControleDeTypeNumerique
    End Sub
     
    Private Sub ControleDeTypeTexte_AfterUpdate()
      Me.ControleDeTypeTexte.DefaultValue = """" & Me.ControleDeTypeTexte & """"
    End Sub
    Fichiers attachés Fichiers attachés
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre du Club
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Oui l'enregistrement précédent est celui qui précède l'actuel, par exemple quand je crée l'enregistrement 4 dans la base ca reprend les valeurs du 3...donc pas necessairement le dernier affiché mais le précedent dans l'ordre de création (donc comme j'ai un champ de reference qui est en numérotation auto on pourrait dire que c'est le précédent dans cet index la)

    Je teste ton code de suite, merci

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,
    Dans ce cas il faut que tu captes le numéroAuto avant de faire la création, avant même que le formulaire passe en édition sur le newrecord je dirais.

    Pourquoi ?
    Tout simplement pour que l'interrogation du Max(numéroAuto) aboutisse à un numéro valide.

    En effet le fonctionnement interne du NuméroAuto peut provoquer des trous dans la numérotation, tu as dû t'en apercevoir.
    Pour créer un trou rien de plus simple :
    Tu te mets sur un nouvel enregistrement, tu passes en édition puis tu annules la saisie.
    Le prochain numéroAuto aura un décalage de 1, et ainsi de suite.

    Voici un petit bout de code qui peut récupérer le dernier (bon) enregistrement. Il se déclenchera au moment ou tu saisiras passera en édition sur le newrecord.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Form_BeforeInsert(Cancel As Integer)
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM table ORDER BY id;", dbOpenSnapshot)
    rst.MoveLast
    MsgBox rst.Fields(0)'renvoi le dernier ID
    ...
    rst.close
    Set rst = Nothing
    End Sub
    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. Réponses: 14
    Dernier message: 31/07/2013, 13h40
  2. [MySQL] modifier le début de deux champs dans plusieurs enregistrements d'une même table
    Par corbin dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/04/2011, 09h40
  3. [AC-2002] Comment Vérouiller certains champs dans certains enregistrements
    Par vortexlechien dans le forum IHM
    Réponses: 2
    Dernier message: 16/05/2009, 00h48
  4. [MySQL] Si un champ dans l'enregistrement existe les checkbox deviennent cochées
    Par imados dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/02/2008, 22h47
  5. Réponses: 9
    Dernier message: 10/01/2006, 16h27

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