Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 05/05/2011, 11h15   #1
Membre du Club
 
Homme Mathieu
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 133
Points : 50
Points : 50
Envoyer un message via MSN à theuma
Par défaut Copier coller de table a table

Bonjour,
Dans mon projet je dois réaliser un mode auto pour les réceptions de commande
Je m'explique :
J'ai un formulaire Commande pour effectuer une commande, quand je valide une feuille de matière première s'imprime pour approvisionner un Sous Traitant ces matières premières viennent d'un calcul fait avec des requêtes, mon problème c'est que je dois copier plusieurs ligne de la table commande pour la mettre dans réception de commande ( je dois faire de l'archivage d'où le fait d'avoir plusieurs tables)
Table: Commande
ID_Commande
Numero
Date
Operateur
FK_Prefa
Table: CommandePrefa
FK_Prefa --> ID_Prefa
FK_Commande --> ID_Commande
Quantite
Table : ReceptionCmd
ID_ReceptionCmd
Numero
Date
Operateur
FK_Prefa
Table: PrefaRecepCmd
FK_PRefa --> ID_Prefa
FK_ReceptionCmd --> ID_ReceptionCommande
Quantite
Requete: NbrTotalPRefa
ID_MatierePremiere
Prefa
Quantite

Ainsi j'aimerai avec une liste déroulante dans le formulaire réceptions de commande, sélectionner ma commande et avec un bouton valider copier les éléments de la commande dans un nouvelle ligne de réception de commande
Le problème, c'est que je ne vois pas comment copier toutes les lignes d'une commande de PrefaCommande Dans PrefaReceptionCommande ....
Merci de votre aide ...
theuma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h06   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
salut,

la "copie" d'enregistrement d'une table a l'autre peut facilement se faire via une requete INSERT INTO.

Restera a relier la requete a ton click de bouton
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 09h09   #3
Membre du Club
 
Homme Mathieu
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 133
Points : 50
Points : 50
Envoyer un message via MSN à theuma
Le problème que j'ai, c'est que je n'arrive pas a naviguer dans les lignes de ma table, je m'explique...
quand je fait mon Set rst1 = dbs.OpenRecordset("Select FK_Prefab FROM PrefabCommande Where FK_Commande = " & Me.NumCommande)et qu'après je fait un Tableau(i, 0) = Int(rst1.Fields(i))Ça marche une fois et après ca beug...
Je na sais pas comment faire pour naviguer dans les lignes ... Pouvez vous m'aider ?
theuma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 10h20   #4
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
Hum,

en me donnant des moreceaux disparates de code, je n'arriverai pas a te venir en aide. Merci de mettre le morceau global du code

Le deplacement dans les enregistrements se fait avec MoveNext au niveau du recordset.
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 10h29   #5
Membre du Club
 
Homme Mathieu
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 133
Points : 50
Points : 50
Envoyer un message via MSN à theuma
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Commande10_Click()
Dim Tableau() As Integer
 
Dim SQL As String
DoCmd.OpenQuery "ReceptionAuto"
Dim taille As Integer
Dim dbs As Database
Set dbs = CurrentDb
Dim rstaille, rst1, rst2 As Recordset
Set rstaille = dbs.OpenRecordset("Select Count(*)as nb From PrefabCommande Where FK_Commande = " & Me.NumCommande)
Set rst1 = dbs.OpenRecordset("Select FK_Prefab FROM PrefabCommande Where FK_Commande = " & Me.NumCommande)
Set rst2 = dbs.OpenRecordset("Select Quantité FROM PrefabCommande Where FK_Commande = " & Me.NumCommande)
taille = Int(rstaille.Fields(0))
ReDim Tableau(taille - 1, 2)
For i = 0 To taille - 1
Tableau(i, 0) = Int(rst1.Fields(0, i))
Tableau(i, 1) = Me.ID_ReceptionCmd
Tableau(i, 2) = Int(rst2.Fields(0, i))
Next
End Sub
Voici le code en VB que j'execute
JE vais essayer ta fonction pour voir !
theuma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 10h40   #6
Membre du Club
 
Homme Mathieu
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 133
Points : 50
Points : 50
Envoyer un message via MSN à theuma
Merci c'est super avec la fonction movenext
voila ce que j'ai fait
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Commande10_Click()
Dim Tableau() As Integer
 
Dim SQL As String
DoCmd.OpenQuery "ReceptionAuto"
Dim taille As Integer
Dim dbs As Database
Set dbs = CurrentDb
Dim rstaille, rst1, rst2 As Recordset
Set rstaille = dbs.OpenRecordset("Select Count(*)as nb From PrefabCommande Where FK_Commande = " & Me.NumCommande)
Set rst1 = dbs.OpenRecordset("Select FK_Prefab FROM PrefabCommande Where FK_Commande = " & Me.NumCommande)
Set rst2 = dbs.OpenRecordset("Select Quantité FROM PrefabCommande Where FK_Commande = " & Me.NumCommande)
taille = Int(rstaille.Fields(0))
ReDim Tableau(taille - 1, 2)
For i = 0 To taille - 1
Tableau(i, 0) = Int(rst1.Fields(0))
Tableau(i, 1) = Me.ID_ReceptionCmd
Tableau(i, 2) = Int(rst2.Fields(0))
rst1.MoveNext
rst2.MoveNext
Next
End Sub
Ca marche beaucoup mieux !!
J'ai plus qu'a faire le insert into et ca sera super merci beaucoup !!
theuma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 10h45   #7
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
OK,

il n'y a rien apres pour passer de ta variable Tableau a l'autre table en fait ?

je serai parti sur une seule requete plus simple, en chaine de caracteres, a executer avec Currentdb.Execute

Code :
1
2
3
Dim strSQL As String
strSQL = " INSERT INTO TableFinale Select FK_Prefab, " & Me.IdReceptionCommande & " AS IDREceptionCommande, Quantite FROM PrefabCommande Where FK_Commande = " & Me.NumCommande
CurrentDb.Execute strSQL
a adapter avec le nom des champs et le nom de la table finale
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 11h21   #8
Membre du Club
 
Homme Mathieu
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 133
Points : 50
Points : 50
Envoyer un message via MSN à theuma
Si pour passer d'un table a l'autre j'ai fait une boucle for avec un insert into... Problème c'est que il n'arrive pas a faire la relation entre mon FK_Commande de ma table ou je veux copier et la table receptioncmd.. je m'explique j'ai 2 tables
ReceptionCmd
ID_ReceptionCmd
Numero
Date ......

ReceptMatiereCmd
FK_PRefab
FK_ReceptionCmd --> Relation avec ID_ReceptionCmd
Quantite

Je fait un Docmd.Save au départ du clique mais ca marche pas ...
theuma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 11h29   #9
Membre du Club
 
Homme Mathieu
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 133
Points : 50
Points : 50
Envoyer un message via MSN à theuma
C'est bon ... C'est moi qui est fait n'importe quoi, j'ai oublier de renseigné des champ obligatoire dans ma receptionCmd et donc l'enregistrement ne se faisait pas, normal donc la c'est régler ... Tu pourrai m'expliquer ton code ??
theuma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 11h39   #10
Membre du Club
 
Homme Mathieu
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 133
Points : 50
Points : 50
Envoyer un message via MSN à theuma
Après plusieurs test il est vrai que ton bout de code est beaucoup mais beaucou plus simple, je ne savais pas que l'on pouvais utilisé un Insert Into sans le values
merci a toi c'est gentil !! A la prochaine
theuma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 12h07   #11
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 737
Points : 10 737
Envoyer un message via MSN à jpcheck
Le VALUES peut etre remplace par un SELECT si tu veux faire une insertion multiple
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h59.


 
 
 
 
Partenaires

Hébergement Web