Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/02/2011, 19h40   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 10
Points : 1
Points : 1
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.
wisemanvsfatboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 20h26   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Tu es sur la bonne voie.

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

pour la requete :

Code :
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,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 20h47   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 10
Points : 1
Points : 1
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 :
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,
wisemanvsfatboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 09h01   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
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 :
...." & 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 :
1
2
3
Function copierecord()
currentdb....
end function
Si tu te sens plus à l'aise avec Expression builder mais ce n'est pas obligatoire.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h40.


 
 
 
 
Partenaires

Hébergement Web