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 :

transfert de donnees


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut transfert de donnees
    Bonjour a tous,

    Je suis actuellement en stage (deuxieme annee de DUT) et je suis charge de developper une application Access pour une entreprise. Ma base de donnees est deja tres complete, et je m'occupe en ce moment de coordonner les formulaires pour traiter les informations.

    L'un de mes principaux probleme est de transferer des donnees d'une table a une autre en utilisant un formulaire. Pour rentrer un peu plus dans le detail :

    - un client veut acquerir un certains nombre de produits.
    - je choisit les produits desires grace a une requete, les resultats sont affiches dans mon formulaire, sous forme de champs (dans un sous formulaire en fait).
    - je veu pouvoir copier les informations concernant ce produit et les coller dans un autre sous-formulaire, cette fois-ci sous forme de tableau de donnees.

    cette action doit permettre en arriere plan de copier certains champs de la table "produits" et de les coller dans les champs correspondants de la table "commandes".

    J'ai deja essaye plusieurs methodes :

    *****************************
    procedure VBA pour 2 boutons :

    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
    Private Sub Copier_Click()
    On Error GoTo GestionErreur
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdCopy
    GestionErreur:
    Select Case Err.Number
    Case 2046 
    End Select
    End Sub
     
     
    Private Sub Coller_Click()
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdPaste
    End Sub
    *************************
    statements SQL
    INSERT INTO....
    *************************

    sans reel succes a chaque fois.
    Je pense qu'il ne me manque pas grand chose mais je n'arrive pas a trouver quoi...


    Si qq un a une solution a me proposer, je suis prenneur

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Houla, tu te complique la vie.

    Le plus simple est de faire un formulaire (commande) et un sous-formulaire (détail) ensuite tu fait une liste déroulante qui présente tes produits. L'utilisateur choisi un produit et Access mémorise le code de ce produit dans ta table détail de commande.

    Pour avoir par exemple aussi le prix, l'astuce consiste à faire une liste de sélection multicolonnes (ex : Ref, Prix, Description)

    Dans ta table Détail tu as au moins 2 champs (Ref, Prix) sur l'événement AfterMAJ (après MAJ) de ta liste (ComboBox) tu fais :

    me.Prix=maListe.column(1):'Attention la num des colonnes commence à 0

    Pour la description une autre astuce consite à utiliser AUSSI une liste déroulante, reliée au champ Ref, avec 2 colonnes, (Ref, Desc) et de masquer (largeur de la première colonne à 0) l'affichage de la ref.

    Tu n'as presque pas de code à écrire et Access s'occupe de mettre à jour la description quand tu choisi un produit.

    Il est prudent de garder le prix d'un article dans la commande pour se mettre à l'abris des changements de tarif. Si tu te base sur le prix tarif, tes commandes vont changer de montant en fonction des variations du prix (ton comptable et tes clients ne vont pas t'aimer.)

    A+

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai essaye d'expliquer mon probleme le plus simplement possible, mais malheureusement il y a beaucoup d'autres elements a prendre en compte et que je n'ai pas cite, et ta reponse me parait un peu simpliste...

    Pour resumer : j'ai 2 tables (entre autres) : "Demo_inventory" et "Demo_order" (je suis aux Etats Unis donc tout est en anglais ) et je veux pouvoir selectionner un enregistrement dans la table "Demo_inventory" et aller le coller dans "demo_order" , tout cela sur le meme formulaire.

    J'ai utilise 2 onglets : "availability" et "reservation". je choisit mon produit dans "availability" avec un menu deroulant et les informations s'affichent dans un sous formulaire. je veux ensuite copier ces informations, et les coller dans un autre sous formulaire dans l'onglet "reservation".

    Ce formulaire contient d'autres elements mais il n'y a que cette partie qui me pose probleme.

    j'ai essaye de creer 2 boutons et les associer avec du code VBA (voir post precedent), mais j'ai du me tromper qq part car c ne marche pas.

    Voila j'espere avoir ete un peu plus precis, merci de m'aider

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Ok, je trouve ton appli plus complexe que nécessaire, j'aurai directement fait ma réservationen me basant mes listes déroulante sur les produits disponibles, mais comme tu dis je n'ai pas tous les éléments.

    je se suggère le code suivant à mettre sous un bouton.

    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
     
    dim db as database:set db=currentdb
    dim rInventaire as recordset:set rInventaire = me.MonSousFormInventory.form.recordset
    dim rReservation as recordset:set rReservation=db.openRecorset("TableReservation")
    dim f as field
     
    do while not rInventaire.eof
      rReservation.addNew
      'Comme je n'ai pas le détail de tes champs, je recopie tous les champs de la table Inventaire
      for each f in rInventaire.fields
         rReservation.fields(f.name)=f
      next f
      rReservation.update
      rInventaire.movenext
    loop
     
    rReservation.close:set rReservation=nothing
    rInventaire.close:set rInventaire=nothing
    db.close:set db=nothing
     
    me.recalc :'Force le réaffichage des nouvelles données.

Discussions similaires

  1. Transfert de données
    Par ox@na dans le forum Administration système
    Réponses: 2
    Dernier message: 15/10/2008, 00h56
  2. transfert de données depuis 4D
    Par nathalie57 dans le forum 4D
    Réponses: 1
    Dernier message: 14/06/2006, 01h08
  3. [Sécurité] Pb de transfert de données de pages en pages
    Par sagitarium dans le forum Langage
    Réponses: 14
    Dernier message: 20/05/2006, 17h36
  4. pb PostgreSQL lors du transfert de donnee sur la base :(
    Par jesbond dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 19/03/2005, 13h44
  5. Réponses: 12
    Dernier message: 04/10/2004, 20h18

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