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 :

Comment lors d'une saisie ajouter un même élément dans 2 tables?


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut Comment lors d'une saisie ajouter un même élément dans 2 tables?
    Bonjour à tous !

    j'aimerai savoir comment faire, pour que, lorsque j'ajoute un nouveau numero de clé primaire (2000) dans la table A, il soit possible qu'il se rajoute automatiquement dans la table B.

    merci d'avance

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Les déclencheurs ne sont pas gérés dans Access, tu dois programmer ceci de toi-meme en VBA.

  3. #3
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Bjr,

    Clause INSERT INTO ou méthode AddNew...

    SE

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    Merci !
    j'ai créé un formulaire pour l'ajout, j'ai créé mon boutton "AJOUT" a l'aide de l'assistant. son VB est celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub ajout_Click()
    On Error GoTo Err_ajout_Click
     
     
        DoCmd.GoToRecord , , acNewRec
     
    Exit_ajout_Click:
        Exit Sub
     
    Err_ajout_Click:
        MsgBox Err.Description
        Resume Exit_ajout_Click
     
    End Sub
    Mais je ne suis pas tres bon en VB, pourrais tu me donner une indication sur l'endroit où je pourrai placer les lignes de programme et quel serait a peu pres ces lignes ?

  5. #5
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Avant ou apres DoCmd.GoToRecord , , acNewRec.

    Utilise une requete de type INSERT INTO comme stéphane_ais2 te l'a suggere. Regarde la FAQ pour savoir comment executer une requete d'action en VBA. (Docmd.RunSQL,...)

    En esperant t'aider.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    C'est pa facile, je viens de prendre l"exemple de ce vba :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Parameters TON_PARAM Text;
        Insert Into TABLE1 Select  CHAMP1 From TABLE2 Where CHAMP2 = [TON_PARAM];
     
     
     
        Set qdf = CurrentDb.QueryDefs("TAREQUETE")
          With qdf
             .Parameters("TON_PARAM") = TaVariable
             .Execute
          End With
    mais ces 2 lignes ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Parameters TON_PARAM Text;
    Insert Into TABLE1 Select  CHAMP1 From TABLE2 Where CHAMP2 = [TON_PARAM];

  7. #7
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Eh bien pour commencer lis en entier les réponses qu'on te donne. Une requête d'insertion ne s'utilise pas ainsi en VBA.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    Bon voila ce que ca donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        DoCmd.GoToRecord , , acNewRec
        StrSql = "INSERT INTO Envoyer VALUES (" & Ajouter!numero & ");"
    DoEvents
    DoCmd.SetWarnings False
    DoCmd.RunSQL StrSql
    DoEvents
    DoCmd.SetWarnings True
    je pensse que j'y suis preske mais je recois le msgbox suivant : "Objet requis"

  9. #9
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Avant le DoCmd.RunSQL StrSql fais un Tu verras ainsi en quoi la requête que tu tentes d'exécuter n'est pas bonne. Si ce n'est pas suffisant copie et exécute la requête dans le QBE.

    Aussi, merci de penser à signaler la ligne où l'erreur se produit, tu feras gagner du temps à ceux qui veulent t'aider et donc également à toi-même.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    J'essaye toujours d'être le plus précis dans mes questions .

    Mais la je n'ai qu'un msgbox et c'est tout. "rien qui ne m'améne au debogueur"...

  11. #11
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut,
    "& Ajouter!numero & "

    si Ajouter est un formulaire utilise plutôt cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrSql = "INSERT INTO Envoyer VALUES (" & Forms!Ajouter!numero & ");"
    ou Me.numero si ton code est exécuté à partir du module de classe du form Ajouter.
    Je ne vois que ça en objets requis.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    Merci !
    Bon je viens d'essayer, mais lorsque je modifie la requête sql et que je l'execute j'ai une erreur de syntaxe sur la requête sql...

    et le me.numero ne marche pas...

  13. #13
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Specifie dans la requete le champ de la table qui va recevoir cette valeur.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    ok j'essaye ca tout de suite!

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    Je viens dessayer, je recoit le msgbox "objet requis".

    si je fais la modifciation de Faw avec le "Forms!" je recois: "erreur de sytaxe dans la requête sql"

    voila actuellement mon programme :

    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
    21
    22
    23
    Private Sub valider_Click()
    On Error GoTo Err_valider_Click
    Dim Db As Database
     
     
        Debug.Print StrSql
        DoCmd.GoToRecord , , acNewRec
        StrSql = "INSERT INTO Envoyer(num_acteur) VALUES (" & Ajouter!numero & ");"
    DoEvents
    DoCmd.SetWarnings False
    Debug.Print StrSql
    DoCmd.RunSQL StrSql
    DoEvents
    DoCmd.SetWarnings True
     
    Exit_valider_Click:
        Exit Sub
     
    Err_valider_Click:
        MsgBox Err.Description
        Resume Exit_valider_Click
     
    End Sub

  16. #16
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Peux-tu nous montrer ce que t'affiche le Debug.Print ?

  17. #17
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    Je vais expliquer du mieux possible la situation :

    Quand j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrSql = "INSERT INTO Envoyer(num_acteur) VALUES (" & Ajouter!numero & ");"
    -je recois seulement un msgbox "objet requis" et le debut print n'affiche rien...


    Quant j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrSql = "INSERT INTO Envoyer(num_acteur) VALUES (" & Forms!Ajouter!numero & ");"
    -je recois un msgbox me disant "erreur de syntaxe dans la requête" et le debug.print m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Envoyer(num_acteur) VALUES ();

  18. #18
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    As-tu bien un formulaire Ajouter qui est ouvert qui contient un controle nommé numero ?
    Ajouter est-il le formulaire sur lequel tu es actuellement ?

  19. #19
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    Mon formulaire "Ajouter" est bien ouvert, j'ai bien un contôle "numero", et "ajouter" est le formulaire où je suis actuellement.

    voila des informations suplémentaires, mon formuliare est un formulaire d'ajout.

    1) je saisie le nom, le prenom, l'adresse etc... ( je ne saisie pas le "numero" acteur qui est un numero auto)

    2) je click sur le boutton "ajouter" pour passe au suivant et ainsi declancher la procedure événementielle sur click qui doit déclencher mon programme...

  20. #20
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 77
    Points : 31
    Points
    31
    Par défaut
    Bon voila j'en est plus que marre ca fait 15heures que je suis sur le meme probléme je vais rassembler les 2 tables en une seule comme ca plus de problémes.....

    merci quand meme demco !

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/12/2010, 16h54
  2. Réponses: 6
    Dernier message: 03/11/2006, 09h04
  3. Changer IMMEDIATEMENT un "é" en "e" lors d'une saisie
    Par Bobybx dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/06/2006, 18h26
  4. [VBA-E]Tests lors d'une saisie
    Par aokiseiichiro dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/03/2006, 17h11

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