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 :

clonage d'un enregistrement dans un formulaire


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut clonage d'un enregistrement dans un formulaire
    Bonjour à tous,

    J4ai un formualire qui recensse tous les produits de ma base.
    J'aimerai, quand on vuet rentrer un nouveau produit similaire à un qui est deja rentré, pouvoir se positionner sur celui existant (ca je sais le faire), puis en cliquant sur un bouton, créer un nouvel enregistrement qui serait en fait une copie de l'autre.
    L'utilisateur n'aurait plus qu'à modifier les caractéristiques souhaitées.

    Par exemple, si une porte de dimension 93 x 204 est rentrée avec toutes ses caractéristiques, l'utilisateur se place sur la fiche de cette porte, et clique sur le bouton. il se n'a plus qu'à modifier 93 en 83 pour obtenir son nouveau produit.

    J'ai essayer la fonction dupliquer, mais il y a un bug. Est ce que je suis sur la bonne voie??

    Merci de l'aide

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Quel est le type de clé que tu utilises ?

    Un numéro auto ou une clé que tu as définie ?

    Domi2

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Avec la combinaison Ctrl + 3, Tu copie la valeur de l'enregistrement précédent.
    Attention, c'est pas le 3 cu pavé numérique, c'est le 3 du clavier.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    je ne comprend pas trop ce que vous volez dire. En fait, la fonction 'Dulpiquer' sur un bouton est ce qu'il faut. mon problème est qu'il me renvoit un message d'erreur. Mais le nouvel enregistrement est pourtant bien créé, et idnetique à l'enregistremetn d'origine.

    Voici le message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Erreur d'Execution 3201
    Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregsitrement associé est resquis dans la table 'tb_entreprise'
    Mon formulaire se presente comme ceci (voir pièce jointe). En fait, je sélectionne dans la liste déroulante en haut, et mon formulaire se mets à jour automatiquement pour afficher toutes les données du produit correspondant.
    LE code utilisé est celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Modifiable136_AfterUpdate()
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[code_produit] = " & Str(Nz(Me![Modifiable136], 0))
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    Quand je fais Débogage, il me retourne sur la ligne suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Bookmark = rs.Bookmark
    Est ce que je suis plus clair?? Dites moi!!
    Merci

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Désolé pour la pièce jointe
    Images attachées Images attachées  

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Je ne pense pas que tu puisses utiliser le bouton dupliquer si la clé primaire de ta table n'est pas un num auto. C'est pour cela que je posais la question, mais ce n'est pas ton cas.

    Visiblement, c'est après l'ajout de l'enregistrement que l'erreur se produit.

    Essaie peut-être de faire un test avec On error resume next en tête de ta procédure.

    Qu'est-ce que cela dit ?

    Domi2

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Dsl de ne pas avoir repondu a ta quesion.

    MA clé primaire de ma table est bien le NumAuto.

    En fait, quand je clique sur 'Fin' dans la fenetre d'erreur, et que j'ouvre ma table, le nouvel enregistrement est bien ajouté.

  8. #8
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Dsl de ne pas avoir repondu a ta quesion.
    Pas grave...

    Tu as essayé avec l'instruction On error resume next ?

    Domi2

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Non, mais je ne connais pas ce test.
    Où est ce que tu mets ca? et a quoi ca sert?

  10. #10
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Je ne suis pas un as de la gestion d'erreur, mais, extrait de l'aide :

    L'instruction On Error Resume Next permet de poursuivre l'exécution à partir de l'instruction qui suit immédiatement celle qui a causé l'erreur d'exécution, ou qui suit immédiatement le dernier appel exécuté depuis la procédure contenant l'instruction On Error Resume Next. L'exécution peut ainsi continuer en dépit d'une erreur d'exécution. Vous pouvez placer la routine de gestion d'erreur au point où une erreur pourrait se produire, au lieu de transférer le contrôle vers un autre point de la procédure. Une instruction On Error Resume Next devient inactive lorsqu'une autre procédure est appelée ; il est donc conseillé de placer une instruction On Error Resume Next dans chaque routine nécessitant une gestion en ligne des erreurs survenues dans cette routine.
    Tu places l'instruction en tête de ta procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Modifiable136_AfterUpdate()
     
        On Error Resume Next
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[code_produit] = " & Str(Nz(Me![Modifiable136], 0))
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    Ainsi, même si l'erreur se produit, l'exécution continue.

    Domi2

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Merci, ca fonctionne

    je connaissais pas cette fonction
    Bon AM

  12. #12
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Merci, ca fonctionne
    Moui... Disons que l'erreur est toujours là quand même...

    J'ai pas testé, mais essaie également le code suivant, sans le on error...

    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
    Private Sub Modifiable136_AfterUpdate()
     
        'On Error Resume Next
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[code_produit] = " & Str(Nz(Me![Modifiable136], 0))
     
        If rs.NoMatch Then
     
            Exit Sub
     
        Else
     
            Me.Bookmark = rs.Bookmark
     
        End If
     
    End Sub
    Normalement, cela devrait fonctionner sans provoquer d'erreur.

    Domi2

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    je me doute bien qu'il y a qqch qui ne va pas, car s'il y a une erreur c'est qu'il y a un problème.
    Merci de l'info. J'essai demain, et je te tiens au courant!!

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

Discussions similaires

  1. Atteindre un enregistrement dans sous formulaire
    Par Kyrha dans le forum Access
    Réponses: 9
    Dernier message: 10/11/2018, 09h06
  2. Réponses: 4
    Dernier message: 02/05/2006, 16h47
  3. suppression enregistrement dans un formulaire
    Par oniric dans le forum Access
    Réponses: 3
    Dernier message: 13/04/2006, 11h51
  4. Réponses: 4
    Dernier message: 22/03/2006, 12h19
  5. Positionnement sur un enregistrement dans un formulaire
    Par bestall666 dans le forum Access
    Réponses: 5
    Dernier message: 04/02/2006, 17h10

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