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 :

Création automatique d'un nouvel enregistrement à partir des données de l'enregistrement précédent ? [AC-2007]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 49
    Points : 33
    Points
    33
    Par défaut Création automatique d'un nouvel enregistrement à partir des données de l'enregistrement précédent ?
    Je reviens vers vous au sujet de ma base de gestion commerciale.
    Dans le formulaire qui permet la saisie des éléments de facturation, je voudrais automatiser la facturation des consignes.
    C'est à dire que si sur la ligne 1 on saisit un article pour lequel figure dans sa fiche un code de consigne, je voudrais que l'enregistrement suivant soit généré automatique avec ce code consigne (qui existe en tant qu'article à part entière).
    Qu'en pensez-vous ?
    Merci d'avance de votre aide.
    Catherine

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    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 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Bonjour,

    Une requete insert peut créer cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentdb.execute "Insert Into matable (champNumerique1, champtexte2, champ3, ....) Values (" & me.controle1 & ",""" & me.controle2 & """," & ... &")"
    C'est une possibilité il y en a d'autres, à base de DAO par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim rst as dao.recordset
    set rst = me.recordset
    rst.addnew
    rst.fields("nomduchamp").value = mavaleur
    ...
    rst.update
    rst = nothing
    Attention ! jamais de close sur un me.recordset, sinon tu fermes la source de ton formulaire.

    Cordialement,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 49
    Points : 33
    Points
    33
    Par défaut Oup's
    Désolée mais je ne comprends pas la réponse !
    Qu'est-ce que je fais de tout ça ? Je le mets où ?
    Merci d'avance de ta patience...

    Citation Envoyé par loufab Voir le message
    Bonjour,

    Une requete insert peut créer cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentdb.execute "Insert Into matable (champNumerique1, champtexte2, champ3, ....) Values (" & me.controle1 & ",""" & me.controle2 & """," & ... &")"
    C'est une possibilité il y en a d'autres, à base de DAO par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim rst as dao.recordset
    set rst = me.recordset
    rst.addnew
    rst.fields("nomduchamp").value = mavaleur
    ...
    rst.update
    rst = nothing
    Attention ! jamais de close sur un me.recordset, sinon tu fermes la source de ton formulaire.

    Cordialement,

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    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 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Bonjour,

    Ce code doit être adapter à ta table. Les nom de champs de controles etc.

    Ou le mettre :

    Pour un déclenchement automatique il vaut mieux le placer derrière l'événement du controle qui contient l'information qui détermine si il y a consigne.

    Sélectionne ce controle, dans les propriétés repère Après MAJ, clique sur le bouton avec les 3 points [...] et choisi Code, il t'ouvrira la fenêtre Visual Basic Editor. C'est entre les 2 lignes (SUB et End SUb) que tu placera le code.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 49
    Points : 33
    Points
    33
    Par défaut Problème sur le code
    Bonsoir,

    Je viens d'essayer d'insérer ce code mais, quand je teste la compilation, j'obtiens une erreur en ligne 7 : "Utilisation incorrecte de la propriété"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Code_consignes_AfterUpdate()
    Dim rst As dao.Recordset
    Set rst = Me.Recordset
    rst.AddNew
    rst.Fields("code_article").Value = mavaleur
    rst.Update
    rst = Nothing
    End Sub
    Je n'ai peut-être simplement pas su utiliser le code


    Citation Envoyé par loufab Voir le message
    Bonjour,

    Ce code doit être adapter à ta table. Les nom de champs de controles etc.

    Ou le mettre :

    Pour un déclenchement automatique il vaut mieux le placer derrière l'événement du controle qui contient l'information qui détermine si il y a consigne.

    Sélectionne ce controle, dans les propriétés repère Après MAJ, clique sur le bouton avec les 3 points [...] et choisi Code, il t'ouvrira la fenêtre Visual Basic Editor. C'est entre les 2 lignes (SUB et End SUb) que tu placera le code.
    Je ne maîtrise pas du tout les codes, sauf à peu près quand il est question de conditions !

    Encore merci d'avance
    Catherine

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 49
    Points : 33
    Points
    33
    Par défaut Il faut que je signale...
    ... que le champ "code_article" est sous la forme d'une zone de liste déroulante, ce qui pose peut-être problème.


    Citation Envoyé par cslbcg Voir le message
    Bonsoir,

    Je viens d'essayer d'insérer ce code mais, quand je teste la compilation, j'obtiens une erreur en ligne 7 : "Utilisation incorrecte de la propriété"

    Private Sub Code_consignes_AfterUpdate()
    Dim rst As dao.Recordset
    Set rst = Me.Recordset
    rst.AddNew
    rst.Fields("code_article").Value = mavaleur
    rst.Update
    rst = Nothing
    End Sub

    Je n'ai peut-être simplement pas su utiliser le code




    Je ne maîtrise pas du tout les codes, sauf à peu près quand il est question de conditions !

    Encore merci d'avance
    Catherine

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    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 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Oups !

    C'est


  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 49
    Points : 33
    Points
    33
    Par défaut Désolée...
    ça ne marche pas
    Je ne sais pas trop quoi faire... je reprendrai demain.
    Bonne soirée et merci.

    Citation Envoyé par loufab Voir le message
    Oups !

    C'est


  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    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 034
    Points : 24 605
    Points
    24 605
    Par défaut
    le code que je t'ai fourni ne peut fonctionner sans une adaptation à ton cas et sans l'avoir étoffé.

    C'est un exemple pour insérer un enregistrement dans les données d'un formulaire.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 49
    Points : 33
    Points
    33
    Par défaut
    Je m'en doute bien un peu mais comment puis-je faire ?
    Je ne connais pas les correspondances entre les codes et les actions !
    Recordset, ça correspond à quoi ?
    et mavaleur ?
    Quels sont les types de paramètres à renseigner ?
    Désolée si j'abuse de ta patience, mais j'aime bien comprendre !


    Citation Envoyé par loufab Voir le message
    le code que je t'ai fourni ne peut fonctionner sans une adaptation à ton cas et sans l'avoir étoffé.

    C'est un exemple pour insérer un enregistrement dans les données d'un formulaire.

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    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 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Citation Envoyé par cslbcg Voir le message
    Je m'en doute bien un peu mais comment puis-je faire ?
    Je ne connais pas les correspondances entre les codes et les actions !
    Il faut les apprendre au fur et à mesure de tes besoins. En lisant les tutos par exemple. En construisant des macros que tu enregistres en module, pour en voir la traduction en VBA.

    Recordset, ça correspond à quoi ?
    Pour recordset et le code fourni il y a un peu de lecture ici http://warin.developpez.com/access/dao/


    et mavaleur ?
    mavaleur est la représentation que j'ai donné pour indiquer qu'il fallait mettre une valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Quels sont les types de paramètres à renseigner ?
    Je ne comprend pas ta question.

    Désolée si j'abuse de ta patience, mais j'aime bien comprendre !
    Il n'y rien à comprendre il faut apprendre. Malheureusement on ne peut pas te former à ACCESS, juste te donner des pistes, quelques solutions éventuellement du code, pas une solution complète vu la diversité d'une application.

    Commence par acheter un bon bouquin genre bible qui traite de tout ce que va rencontrer dans ACCESS et pour bien comprendre l'interaction :
    Table,
    Requete,
    Formulaire,
    Etat,
    VBA

    Lis également le tuto sur les événements. C'est le coeur des formulaires tu comprendra mieux comment faire réagir un formulaire.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 49
    Points : 33
    Points
    33
    Par défaut Merci quand même...
    Je vais me débrouiller mais je maintiens qu'il y a tout de même des choses à comprendre, ne serait-ce que les fondements de la syntaxe !

    Si j'ai fait appel à ce forum, c'est que je manque de temps pour apprendre par rapport à une échéance précise, c'est pour cela que je cherche de l'aide, pour essayer de gagner un peu de temps.

    Merci.

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 034
    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 034
    Points : 24 605
    Points
    24 605
    Par défaut
    Voici le code commenté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Code_consignes_AfterUpdate()
    Dim rst As dao.Recordset  'déclare le recordset
    Set rst = Me.Recordset    'instancie le recordset du formulaire courant à la variable 
    rst.AddNew   ' se positionne sur le nouvel enregistrement
    rst.Fields("code_article").Value = mavaleur ' copie la valeur dans le champ Code_Article
    ...   ' d'autre copie
    rst.Update  ' sauve les données
    SET rst = Nothing   ' vide la déclaration
    End Sub
    Note que dans le tuto DAO que je t'ai aimablement conseillé de lire tu aurais trouvé la même chose et même plus.

    Je regrette que tu prennes la chose de cette manière mais je ne suis en rien responsable de ton manque de temps ni de ton échéance, même si je comprend ton agacement.

    Cordialement,

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 49
    Points : 33
    Points
    33
    Par défaut Merci !
    Oh, ce n'était pas de l'agacement, juste de la fatigue !

    Merci pour ces explications supplémentaires.
    J'ai effectivement regardé le tuto DAO et j'avais commencé à cerner le sujet, tu me confirmes ce que j'avais compris.

    Merci et bonne semaine
    Bien cordialement

    Catherine

    Citation Envoyé par loufab Voir le message
    Voici le code commenté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Code_consignes_AfterUpdate()
    Dim rst As dao.Recordset  'déclare le recordset
    Set rst = Me.Recordset    'instancie le recordset du formulaire courant à la variable 
    rst.AddNew   ' se positionne sur le nouvel enregistrement
    rst.Fields("code_article").Value = mavaleur ' copie la valeur dans le champ Code_Article
    ...   ' d'autre copie
    rst.Update  ' sauve les données
    SET rst = Nothing   ' vide la déclaration
    End Sub
    Note que dans le tuto DAO que je t'ai aimablement conseillé de lire tu aurais trouvé la même chose et même plus.

    Je regrette que tu prennes la chose de cette manière mais je ne suis en rien responsable de ton manque de temps ni de ton échéance, même si je comprend ton agacement.

    Cordialement,

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 18/01/2010, 11h29
  2. [XML] Création d'un flux RSS à partir des données en base
    Par Misoss dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 01/07/2008, 17h03
  3. Réponses: 3
    Dernier message: 19/05/2008, 10h36
  4. Réponses: 2
    Dernier message: 03/12/2007, 21h52
  5. Réponses: 3
    Dernier message: 28/05/2007, 13h11

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