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

VBA Access Discussion :

Ajouter record d'un sous formulaire dans une autre table


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Ajouter record d'un sous formulaire dans une autre table
    Tout d'abord bonsoir à tous,

    voici mon problème, j'aimerais pouvoir insérer un record dans une table en double cliquant sur le record d'une autre table se trouvant dans un sous formulaire.

    Je ne sais pas du tout comment m'y prendre étant débutant.

    J'avais commencer par faire une requête ajout en SQL pour ajouter mes records d'une table à l'autre en espérant pouvoir appeler la Query via un évènement sur le double clique du record dans mon sous formulaire mais j'ai légèrement l'impression de m'éloigner de la solution et de me compliquer la tache et donc je viens faire se post en espérant trouver quelqu'un qui pourrait m'aiguiller.

    Merci d'avance pour vos réponses.

  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 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Bonjour,

    Tu es sur la bonne voie.

    Double-clic + requete paramétrée dans VBA est une bonne solution.

    pour la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentdb.execute "INSERT .... WHERE Id = " & me.txtid  & ";"
    Où Id représente le nom du champ contenant l'identifiant unique de la table source. Et txtid est le nom du controle contenant la valeur de l'identifiant de cette même table dans le sous-formulaire.

    Ce code doit être placé dans une fonction dans le sousformulaire.

    Pour l'appel :
    Sélectionne tous tes controles texte visibles (susceptible de recevoir le double-clic) et dans la propriété Sur double-clic met le nom de la fonction précédée de =

    Comme ceci :

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour ta réponse mais je suis un réel débutant et je ne suis pas sur de savoir quoi faire de toutes tes infos.

    Au niveau de la requête ou dois-je placer le code ? Dans VBA ? si oui le code ci-dessous te semble bon ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub copierecord()
     
    CurrentDb.Execute "INSERT into [LISTMOR] values (NAME,GENRE,MULTI,DEV,EDIT,DATE) WHERE ID = " & Me.ID & ";"
     
    End Sub
    J'ai placé le code dans Form_LISTGAME dans VBA

    Est-ce bon ? Form_LISTGAME étant le nom de mon formulaire dans lequel se trouve la liste de mes record.

    Au faite mon double clic se fera dans un formulaire et non dans un sous formulaire. Je ne sais pas si cela change quelque chose ?

    Concernant le txtID j'ai pas trop compris, le nom du control contenant la valeur de l'identifiant c'est à dire le NAME de la textbox d'où s'affiche les valeurs ID ?

    Concernant l'appel tu parle de fonction mais quelle fonction ? Le code que j'ai mis dans VBA ? Dois-je passer par Expression Builder ou code builder ?

    Un tout grand merci pour ton aide précieuse.

    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 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Bonjour,

    Il faut un INSERT SELECT et non un INSERT VALUES. regarde dans l'aide pour construire cette requete.

    Tu place évidement ton code là ou tu fais le double-clic. Par contre si le controle qui contient l'ID est dans le sous-form et que le code est dans le form il faut modifier l'expression WHERE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...." & me.nomSousForm.Form.ID & ";"
    Le nom d'un controle c'est bien la propriété Name du controle.
    La fonction c'est celle que tu viens de créer mais pas avec un Sub pour que tu puisses faire un appel directement dans la propriété Sur Double-clic.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function copierecord()
    currentdb....
    end function
    Si tu te sens plus à l'aise avec Expression builder mais ce n'est pas obligatoire.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. sous formulaire dans une JSP
    Par skillipo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 13/02/2008, 16h21
  2. Sous-formulaire dans une nouvelle fenêtre
    Par Satch dans le forum IHM
    Réponses: 2
    Dernier message: 21/06/2007, 08h40
  3. Réponses: 2
    Dernier message: 27/03/2007, 17h47
  4. Réponses: 4
    Dernier message: 28/12/2006, 17h38
  5. Sous Formulaire dans une fenetre
    Par mycrodom dans le forum IHM
    Réponses: 4
    Dernier message: 24/11/2006, 14h00

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