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 :

Enregistrement dans 2 tables à la fois


Sujet :

Access

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut Enregistrement dans 2 tables à la fois
    Salut,

    FAQ ett Forum consultés sans résultat.

    J'ai une base dans laquelle les clients peuvent être des fournisseurs et inversement.

    j'aimerais que quand je crée un nouvel enregistrement dans la table client via le formulaire F_Client par exemple, un enregistrement soit automatiquement créé avec les mêmes valeurs pour les champs mais dans la table "Fournisseurs", et inversement, si je rentre un fournisseur via le formulaire F_Fournisseur.

    Parce que là je sèche

    Pour info, les 2 tables clients et fournisseurs ont la même structure (même champs et même format etc...).

    Merci

  2. #2
    Membre actif
    Avatar de GAGNON
    Inscrit en
    Septembre 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 201
    Points : 201
    Points
    201
    Par défaut
    perso ce que je ferai:

    -rendre certains champs obligatoire à la saisie (ex Clé primaire, nom ...)
    -sur l'évenement sortie du dernier champs, enregistrement de l'enregistrement courant + une requete INSERT qui copie ces données dans la table connexe.

    si ça peut t'aider
    La pensée n'est qu'un éclair au milieu de la nuit. Mais c'est cet éclair qui est tout.
    Henri Poincaré

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    salut gagnon et merci

    pour tester le insert into j'ai essayé avec un exemple simple 2 tables et 4 champs par table (1 num auto + 3 textes)
    table1 : a (auto) b,c,d
    table2 : e(auto) f,g,h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Table2
    SELECT Table1.*
    FROM Table1, Table2;
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO Table2 ( f, g, h )
    SELECT Table1.c1, Table1.c, Table1.d
    FROM Table1, Table2
    WHERE (("b"<>"f") AND ("c"<>"g") AND ("d"<>"h"));
    mais ça marche pas, il ne sélectionne aucun enregistrement à ajouter :

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    kk'1 pourrait me dire pourquoi il marche pas mon code s'il vous plait?

    j'ai beau le tourner dans tous les sens il ne sélectionne jamaos un champ à ajouter

    a+

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    essai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim Query As String
     
    Query="INSERT INTO table2 SELECT * FROM table1"
    CurrentDB.Execute(Query)

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    As tu une source de données pour tes formulaires?
    Amicalement

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    salut DMboup ;-)

    en fait ce sont 2 formulaires issus de 2 tables (Client et Déposant).

    Les champs sont les mêmes, simplement le nom des champs change comme ceci par exemple :

    NumeroClient --> NumeroDeposant
    Nomclient --> NomDeposant etc....
    environ 15 champs dans chacune des tables.

    il n'y a pas de liste déroulantes ni quoi que ce soit, juste les formulaires simples qui ne servent qu'à entrer des enregistrements.

    il y a des champs texte, des champs num, des champs memo et des champs date

    L'idéal pour moi serait que sur ce form il y ait soit un boutton, soit que ça se fasse tout seul, pour que l'enregistrement que je viens de saisir et qui est encore affiché s'enregistre automatiquement dans l'autre table

    la valeur de NomClient aille dans NomDeposant etc.....

    C'est pour créer à chaque fois dans l'autre table un seul enregistrement (celui en cours) à la fin de la saisie, pas copier tout un tas d'enregistrements à la fois).

    Voilà, j'espère que c'est + clair et que qq'un pourra m'aider

    a+

    Ps : je suis au boulot, donc je n'ai pas encore eu le tps d'essayer la solution de skorz, mais où est-ce qu'il se met ce code "Dim query as string", dans le corps d'une requête ? ou est-ce un procedure evenementielle? ou autre chose ?

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Eh bien supposons que le formulaire F_Client a pour source de donnée la table Clients.

    Donc en remplissant les champs du formulaire, tu remplis en même temps ta table clients.
    Tu crée un bouton Enregistrer dans ce fomulaire F_CLient et tu mets le code qui te remplis la table Deposant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Privat Sub BoutonEnreg_Click()
    DoCmd.RunSQL ("INSERT INTO Deposant(NomDeposant, AdresseDeposant, ...) values('" & Me.NomClient & "', '" & Me.AdresseClient & "', '" & .... & "');")
     
    End Sub
    Quand tu seras sur l'autre formulaire ce seras l'inverse
    Amicalement

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 61
    Points : 30
    Points
    30
    Par défaut
    je pense que j'ai le même problème, plus ou moins, si quelqu'un peut voir le sujet "Liste déroulante" pour m'apporter une aide, ça ressemble à ce sujet.
    Merci

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Tu as pensé à fusionner tes deux tables en une seule ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    oui, j'y ai pensé mais c'est problématique quand on veut retrouver le nom pour un meme produit du déposant et du client, comme c'est une seule et même table, les relations merdoient, il y a 2 noms associés au même produit et acces aime pas trop, même si un a acheté et 1 vendu

    enfin, du moins, en faisant une structure "classique" pour un commerce, avec une seule table ça foire.

    a+

    ps : merci DMbuop, je teste ça en rentrant

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Le plus simple est alors d'avoir 2 tables, mais légèrement différentes :
    - la première "clientsfourn" : noms, adresses, téléphones...
    - la seconde "produits" : produit, client, fournisseur

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 54
    Points : 34
    Points
    34
    Par défaut
    merci DMboup, encore une fois tu me sauves la mise ;-)

    a+

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/07/2010, 12h03
  2. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11
  3. Nombre d'enregistrement dans une table MySQL
    Par tom06440 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 21/10/2005, 19h07
  4. AJOUT d'un ENREGISTREMENT dans UNE TABLE
    Par ramo dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/08/2005, 16h24
  5. Réponses: 9
    Dernier message: 27/10/2004, 01h31

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