Copier des données d'une table vers une autre

Résolu
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012 - 3 juil. 2012 à 16:36
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012 - 13 juil. 2012 à 12:07
Bonjour,

Etant débutant en Access, je me permets de vous solliciter car j'aimerai copier des données d'une table vers une autre en fonction d'un critere.

Je m'explique :

Dans ma table 1, j'ai un champ "SBrev", un champ "DM", un champ "nom_DM", un champ "Auteur", un champ "nom_Auteur" (+ tout un tas d'autre information)
Dans ma table 2, j'ai un champ "SB", un champ "rev", un champ "DM", un champ "nom_DM", un champ "Auteur", un champ "nom_Auteur".

J'aimerai copier ma table 2 vers ma table 1 en fonction du SB. Pour la table 2, il faut coupler le champ "SB" avec le champ "rev" pour avoir le champ "SBrev" de la table 1.
Les différeznt champ de la table 2 ( "DM", "nom_DM", "Auteur", "nom_Auteur") devront s'insérer dans les champs du meme nom de la table 1 en fonction du "SBrev".

Petite illustration :
table 1
SBrev DM nom_DM Auteur nom_Auteur
1010-10
1515-15
3030-30

table 2
SB rev DM nom_DM Auteur nom_Auteur
1010 10 sas Durand sec Martin
1515 15 eue Pascal asa Cascade
3030 30 rez Patrice uio Michel

Merci aux/à personne(s) qui prendront le temps de me répondre

Jaff

22 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
9 juil. 2012 à 15:26
Voici le schema sur lequel je me suis basé.

*tbl_Extract_Suprem (source)
-[SB Number]
-[Sb Revision]


*tbl_DCR (destination)
-[SB_N°] (7)
-[SB_rev]

On va donc tenter de mettre à jour tbl_DCR à partir de données
extraites de tbl_Extract_Suprem si:

Left$([tbl_DCR]![SB_N°],7)=[tbl_Extract_Suprem]![SB Number])
ET
[tbl_DCR]![SB_rev]=[tbl_Extract_Suprem]![Sb Revision]

Il y a deux façons de réaliser cela:

-Une boucle qui parcourir la table tbl_DCR, et recherche la correspondance
dans la table tbl_Extract_Suprem.

Ou alors

-Une requete.
Dans ce cas, il faudra passer par une requete intermédiaire,
sur tbl_DCR (appelant la q_tbl_DCR) et dans laquelle on va retrouver tout les champs de
tbl_DCR, plus un champ généré ([SB_7]) qui représente les 7 premier caractère de [SB_N°].
Cette requete doit être réalisée manuellement, et fera partie intègrante de notre base.

Ainsi notre requête mise à jour sera constituée de :
tbl_DCR , q_tbl_DCR et tbl_Extract_Suprem.
et mettra en relation d' un coté :
- tbl_DCR [SB_N°] <---> q_tbl_DCR [SB_N°]

Et de l' autre:
-q_tbl_DCR [SB_7] <---> tbl_Extract_Suprem [SB_Number]
-q_tbl_DCR [SB_rev] <---> tbl_Extract_Suprem [Sb Revision]

Si tu as la possibilité d' ajouter la requete q_tbl_DCR à ta base,on pourra envisager la requete mise

à jour comme suit:

sQuery="UPDATE (q_tbl_DCR INNER JOIN tbl_DCR " & _
"ON q_tbl_DCR.SB_N° = tbl_DCR.SB_N°) " & _
"INNER JOIN tbl_Extract_Suprem " & _
"ON (q_tbl_DCR.SB_7 = tbl_Extract_Suprem.[SB Number]) " & _
"AND (q_tbl_DCR.SB_rev = tbl_Extract_Suprem.[Sb Revision]) " & _
"SET tbl_DCR.chp1 = tbl_Extract_Suprem!chp1, " & _
"tbl_DCR.chp2 = tbl_Extract_Suprem!chp2, " & _
"tbl_DCR.chp3 = tbl_Extract_Suprem!chp3;"


A la place de chp1, chp2 et chp3 ,tTu pourras mettre autant de champs qu' il y' a en commun.
Tu remarqueras que SB_N° est exclus de la partie SET.Parcequ'on peut pas mettre à jour un champ
quand il fait partie d' une relation.

Si tu n' as pas la main pour ajouter la requete q_tbl_DCR à ta base,
on pourra attaquer le volet boucle.




[] Ce qui va sans dire. va mieux en le disant.
3
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
10 juil. 2012 à 12:48
Bonjour,

Oui , c ' est tout à fait de ça dont je parlais.
Et donc, si tu as La possibilité de créer autant de requetes et de tables que tu veux,
il ne te reste plus qu' a ajouter une requete (q_tbl_DCR) dans laquelle tu va utiliser la table
tbl_DCR, pour extraire les champs:
-[SB_N°]
-[SB_rev]
+ Un champ généré
[SB_N°] dont la définition est :Left$([tbl_DCR]![SB_N°];7)

Cette structure va parmettre d établir une double relation avec tbl_Extract_Suprem , comme décrite précédement.
"Pour ce qui est de la requete qui permet de ne prendre que les 7 premiers caractères je ne la vois pas dans la requete mise à jours."

Elle y est pourtant !
sQuery =  "UPDATE ( q_tbl_DCR  INNER JOIN tbl_DCR " & _
"ON q_tbl_DCR.SB_N°  = tbl_DCR.SB_N°) " & _
"INNER JOIN tbl_Extract_Suprem " & _
"ON (q_tbl_DCR.SB_7 =  tbl_Extract_Suprem.[SB Number]) " & _
"AND ( q_tbl_DCR .SB_rev  = tbl_Extract_Suprem.[Sb Revision]) " & _
"SET tbl_DCR.chp1 = tbl_Extract_Suprem!chp1, " & _
"tbl_DCR.chp2 = tbl_Extract_Suprem!chp2, " & _
"tbl_DCR.chp3 = tbl_Extract_Suprem!chp3;"

Elle sera transparente pour l' utilisateur dans un autre contexte.
Puisqu ' elle est à l' image de la table tbl_DCR.
Tu pourra l' utiliser à d' autres fins.
Pour l ' instant, elle sert uniquement à ce traitement.

Pour le moment, ne te poses pas trop de questions.
Fais exactement ce que je te propose, il n' y aura pas de soucis.
Si tu butes sur quelques chose, fais-moi signe.

A+



[] Ce qui va sans dire. va mieux en le disant.
3
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
10 juil. 2012 à 15:57
Regardes ces deux captures pour mieux comprendre:

[capture_1 http://cjoint.com/?BGkpRUS5KGh]
[capture_2 http://cjoint.com/?BGkp0iTPolP]



[] Ce qui va sans dire. va mieux en le disant.
3
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
10 juil. 2012 à 16:05
si le lien ne fonctionne pas direct, copies l' adresse et accèdes-y depuis Internet Explorer.

[] Ce qui va sans dire. va mieux en le disant.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
4 juil. 2012 à 00:37
Bonsoir,

sQuery="INSERT INTO Table1 ( SBrev, DM, nom_DM, Auteur, nom_Auteur ) " & _
"SELECT Table2.SB & '-' & Table2.rev AS SBrev, " & _
"Table2.DM, Table2.nom_DM, Table2.Auteur, Table2.nom_Auteur " & _
"FROM Table2;"


[] Ce qui va sans dire. va mieux en le disant.
0
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012
4 juil. 2012 à 11:46
Merci LIBRE_MAX,

La requette que tu m'as envoyé copie tout d'un seul coup ou il faut que je fasse une boucle sur le SBrev afin qu'il remplisse les champs ligne par ligne?
car quand je clic sur le bouton il ne me met aucune erreur mais je ne vois pas d'évolution dans mes tables.

En tout cas merci pour ta réponse ;)
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
4 juil. 2012 à 14:29
Bonjour,

Il faut que tu postes ton bout de code, pour qu' on puisse y voir plus clair.

Ceci dit La requette, telle qu' elle est exprimée, est faite pour copier tout d'un seul coup.
Si ta table destination est déjà pleine, elle va y rajouter les lignes de la table source.



[] Ce qui va sans dire. va mieux en le disant.
0
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012
4 juil. 2012 à 15:02
Ma table1 est une table qui possede plusieurs champs (dont ceux que j'ai mis plus haut). J'aimerai, par le biais de cette requete, rajouter les champs non remplis grace a ma table2. C'est pour cela que j'ai pensé qu'il fallait faire une boucle pour les remplir ligne par ligne. Le probleme qui risque de se poser c'est que SB_N° (appelé SBrev dans mon premier messages) est un numéro du style XX-XXXX-XX. si je fais une boucle avec incrémentation, va-t-il etre intuitif et ne pas beuguer à cause des "-"?

Pour ce qui est de mon code, je n'ai que le morceau que tu m'as donné. J'ai modifié les noms en fonction de mes tables mais en gros tbl_DCR est la table1 et tbl_Extract_Suprem est la table2.

Private Sub Command27_Click()

Dim sQuery As String


sQuery = "INSERT INTO tbl_DCR ( SB_N°, SB_Designer, SB_Designer_WorkCenter, DM/DFM, DM/DFM_WorkCenter, SB_Author, SB_Author_WorkCenter ) " & _
"SELECT tbl_Extract_Suprem.SB Number & '-' & tbl_Extract_Suprem.SB Revision AS SB_N°, " & _
"tbl_Extract_Suprem.SB_Designer, tbl_Extract_Suprem.SB_Designer_WorkCenter, tbl_Extract_Suprem.DM/DFM, tbl_Extract_Suprem.DM/DFM_WorkCenter, tbl_Extract_Suprem.SB_Author, tbl_Extract_Suprem.SB_Author_WorkCenter " & _
"FROM tbl_Extract_Suprem;"


End Sub


PS : faut il que je valide chaque réponse?
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
4 juil. 2012 à 15:44
Pas suffisant !

Dans ton code tu ne fais qu' affecter une chaine de caractères à une variable String.

Il te manque un objet connection et un objet command pour pouvoir éxécuter ta requete.

Tu fais comment pour accèder à ta base de données ?

[] Ce qui va sans dire. va mieux en le disant.
0
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012
4 juil. 2012 à 16:13
Dans mon appli Access j'ai un boutton appellé Command27 et j'aimerai que les données se transfere lorsque je clic dessus. Pour ce qui est de la connection j'ai pu voir des trucs du style (voir code ci dessous),mais je ne comprend pas la logique de fonctionnement mis à par que pour "db" il se connecte à la base de donnée et rs1 enregistre les différentes variables établies dans la requete.



'Dim db As DAO.Database
'Dim rs1 As DAO.Recordset

'Set db = CurrentDb
'Set rs1 = db.OpenRecordset ("SELEC * FROM tbl_Extract_Suprem")



Encore merci pour ton aide car vu les compétences en Access/VisualBasic que j'ai, je n'irais pas bien loin...
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
4 juil. 2012 à 23:22
Bonsoir,

Je ne sais pourquoi as désactivé tes lignes, mais à première vue , il me semble que tu peux réactiver celles qui nous interesse pour le moment.
Voici donc ce que je te propose:

Private Sub Command27_Click()
   Dim db As DAO.Database
   Dim sQuery As String

   Set db = CurrentDb

   sQuery = "INSERT INTO tbl_DCR ( SB_N°, SB_Designer, SB_Designer_WorkCenter, DM/DFM, DM/DFM_WorkCenter, SB_Author, SB_Author_WorkCenter ) " & _
   "SELECT tbl_Extract_Suprem.SB Number & '-' & tbl_Extract_Suprem.SB Revision AS SB_N°, " & _
   "tbl_Extract_Suprem.SB_Designer, tbl_Extract_Suprem.SB_Designer_WorkCenter, tbl_Extract_Suprem.DM/DFM, tbl_Extract_Suprem.DM/DFM_WorkCenter, tbl_Extract_Suprem.SB_Author, tbl_Extract_Suprem.SB_Author_WorkCenter " & _
   "FROM tbl_Extract_Suprem;"

'éxécution de la transaction
   On Error Goto err_insert
    DBEngine.Workspaces(0).BeginTrans
        db.Execute sQuery, dbFailOnError
    DBEngine.Workspaces(0).CommitTrans

 MsgBox "Procédure effectuée avec succès..",vbOkOnly
Exit Sub

'si erreur
err_insert:
'annulation de la transaction 
    DBEngine.Workspaces(0).Rollback
    MsgBox Err.Description

End Sub




[] Ce qui va sans dire. va mieux en le disant.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
5 juil. 2012 à 03:36
Excuses moi, mais je viens de relire ton précédent post.Et il me semble avoir raté quelque chose.

Le probleme qui risque de se poser c'est que SB_N° (appelé SBrev dans mon premier messages) est un numéro du style XX-XXXX-XX. si je fais une boucle avec incrémentation, va-t-il etre intuitif et ne pas beuguer à cause des "-"?


Si SB_N° est de type numérique, évidement qu' il va beuguer.
Il va même beugler, si tu tentes de lui affecter une chaine.

A toi de voir donc comment tu peux remedier à ça.

Moi, je me contente de te montrer comment transfèrer des données d' une tabl vers une autre.

Maintenant, si tu veux y aller avec une boucle je te propose ceci:

Private Sub Command27_Click()

 Dim db As DAO.Database
 Dim rsSource As DAO.Recordset, rsDest As DAO.Recordset

 'declares une variable Integer pour une incrémentation
 Dim i As Integer
 
 Set db = CurrentDb
 Set rsSource= db.OpenRecordset ("SELEC * FROM tbl_Extract_Suprem",dbOpenDynaset)
 Set rsDest= db.OpenRecordset ("SELEC * FROM tbl_Destination",dbOpenDynaset)

  
  With rsSource
     On Error Resume Next
     .MoveLast
     .MoveFirst
      
     'vérifier si la table source n' est pas vide   
      If .Bof And .Eof Then
         MsgBox "Table source vide."
         Exit Sub
      End If

      On Error Goto err_insert
      
      'On parcours la table source,et on insère un à un tout es les lignes
      Do While Not .Eof
         i=i+1
         rsDest.AddNew
         rsDest!SBrev=!SB & "-" & !rev 'ça reste donc à revoir
         rsDest!DM=!DM
         rsDest!nom_DM=!nom_DM
         rsDest!Auteur=!Auteur
         rsDest!nom_Auteur=!nom_Auteur
         
         'tu peux rajouter des champs ici
 
        .Update
        
         'ligne suivante
        .MoveNext
      Loop

   End With

   rsSource.Close
   Set rsSource=Nothing
   rsDest.Close
   Set rsDest=Nothing

   MsgBox "Terminé.."

   Exit Sub

  'encas d' erreur
err_insert:

   MsgBox Err.Description

 End Sub





[] Ce qui va sans dire. va mieux en le disant.
0
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012
6 juil. 2012 à 10:38
Salut LIBRE_MAX

J'ai pris en considération tes conseils pour mon programme et j'ai essayé de réalisé ma requete comme suit :

Private Sub Command27_Click()
   Dim db As DAO.Database
   Dim sQuery As String

   Set db = CurrentDb

sQuery = "UPDATE tbl_DCR " & _
   "set [DCR.SB_N°] = = [SUP.SB Number] & " - " & [SUP.SB Revision], " & _
        "[DCR.DM/DFM] = [SUP.DFM Name]," & _
        "[DCR.DM/DFM_WorkCenter] = [SUP.D(F)M Work center] " & _
        "[DCR.SB_Designer] = [SUP.SB Prep Resp]," & _
        "[DCR.SB_Designer_WorkCenter] = [SUP.SB Designer Work center] " & _
        "[DCR.SB_Author] = [SUP.Author name]," & _
        "[DCR.SB_Author_WorkCenter] = [SUP.SB author leader Work center] " & _
   " FROM tbl_DCR DCR INNER JOIN tbl_Extract_Suprem SUP ON DCR.SB_N° = [SUP.SB Number] & " - " & [SUP.SB Revision] ;"
     
   
     

'éxécution de la transaction
   On Error GoTo err_insert
    DBEngine.Workspaces(0).BeginTrans
        db.Execute sQuery, dbFailOnError
    DBEngine.Workspaces(0).CommitTrans

 MsgBox "Procédure effectuée avec succès..", vbOKOnly
Exit Sub

'si erreur
err_insert:
'annulation de la transaction
    DBEngine.Workspaces(0).Rollback
    MsgBox Err.Description

End Sub


tu t'imaginais bien que ca n'allait pas marché... ca aurait été bien trop beau. en revanche je ne comprend pas d'ou peut sortir l'erreur. Le code erreur est " run time error '13' : type mismatch "

Cette erreur est lié à la concaténation de mes "SB Number" et "SB Revision"?
Est ce que le fait de mettre des crochets ([]) est approprié ou faut il mettre plutot des cotes (``)?
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
6 juil. 2012 à 12:37
Bonjour,

L' erreur est bien liée à la concaténation de mes "SB Number" et "SB Revision".
"Type mismatch" signifie que le type est incompatible.
Dans le sens ou tu tentes d' affecter une chaine à un champ numérique.(SB & "-" & rev ==>chaine de caractères.)
C' est ce que je t'ai fait remarqué dans mon dernier post.

C' est pas le fait de concatèner, mais c' est le fait d' affecter qui provoque l' erreur.

Si tu arrives à modifier le type du champ SBrev, tout ira bien.Ou alors abandonnes l' idée de la concaténation.

Remarques, les deux codes fonctionneraient bien.






[] Ce qui va sans dire. va mieux en le disant.
0
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012
6 juil. 2012 à 16:14
comme tu me le conseilles j'ai abandonné la concaténation et j'ai plutot opter pour une autre méthode. J'ai essayé de prendre les 7 premiers caracteres du SB_N° (qui correspond à XX-XXXX). Je vérifie ensuite l'égalité avec le "SB Number" de ma table tbl_Extract_Suprem. Après il ne me reste plus qu'a vérrifier un autre champ de ma table DCR (appellé SB_rev) avec le champ "SB Revision" de ma table Extract.

En revanche en SQL je ne sais pas si on peut ne prendre que les 7 premier caracteres d'un mot car il me met un erreur de syntaxe. J'ai essayé également un truc du style
Dim A As String
Dim B As String

A = [tbl_DCR.SB_N°]
B = Left (A,7)

Malheureusement cette technique ne fonctionne pas. (je pense que c'est due au fait qu'il prenne toute la colonne SB_N° et qu'il n'arrive pas a choisir quels sont les 7 premier caracteres à prendre)


j'ai aussi essayé de cette facon la, mais ca n'a pas été une victoire non plus :(

Private Sub Command27_Click()
   Dim db As DAO.Database
   Dim sQuery As String
   Set db = CurrentDb





sQuery = "UPDATE tbl_DCR " & _
   "set Left(DCR.SB_N°,7) = SUP.SB Number" & _
        "[DCR.SB_rev] = [SUP.SB Revision], " & _
        "[DCR.DM/DFM] = [SUP.DFM Name]," & _
        "[DCR.DM/DFM_WorkCenter] = [SUP.D(F)M Work center] " & _
        "[DCR.SB_Designer] = [SUP.SB Prep Resp]," & _
        "[DCR.SB_Designer_WorkCenter] = [SUP.SB Designer Work center] " & _
        "[DCR.SB_Author] = [SUP.Author name]," & _
        "[DCR.SB_Author_WorkCenter] = [SUP.SB author leader Work center] " & _
   " FROM tbl_DCR DCR INNER JOIN tbl_Extract_Suprem SUP ON B SUP.SB Number and [DCR.SB_rev] [SUP.SB Revision] ;"
     
   
     

'éxécution de la transaction
   On Error GoTo err_insert
    DBEngine.Workspaces(0).BeginTrans
        db.Execute sQuery, dbFailOnError
    DBEngine.Workspaces(0).CommitTrans

 MsgBox "Procédure effectuée avec succès..", vbOKOnly
Exit Sub

'si erreur
err_insert:
'annulation de la transaction
    DBEngine.Workspaces(0).Rollback
    MsgBox Err.Description

End Sub


Est ce que je dois prendre les 7 premier caractere au sein de ma requete ou faut il que je fasse ca en dehors et qu'ensuite je le test dans ma requete?




PS : je ne sais pas comment te remercier de tout le temps que tu passes à me répondre mais en tout cas ca me fait grandement plaisir et je t'en suis reconnaissant
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
6 juil. 2012 à 23:43
Bonsoir,

Moi aussi, ça me fait plaisir.
En même temps, je ne suis pas content de toi.

Je ne te suis plus.J' avoue que je commence à être "largué".
Réponds moi juste à ces queleques questions:

-N' est-ce pas qu' on parle bien de mise à jour et pas d' insertion ?
-Combien de tables sont en jeu dans cetta requete ?
-tbl_DCR est bien la table destination ?
-SUP est bien la table source ?
-Et DCR ?
-De quel type est le champ [SB_N°] de la table DCR ?
-De quel type est le champ [SB Number] de la table SUP ?

-Enfin, pourquoi toutes ces manipulations ?

Réponds moi juste à ça , pas plus.

PS;Avec une telle orthographe, tes champs doivent être mis entre crochets.
Chaque champ doit aussi être précèdé du nom de la table à laquelle il appartient.






[] Ce qui va sans dire. va mieux en le disant.
0
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012
9 juil. 2012 à 10:40
Salut LIBRE_MAX,

Désolé pour cette réponse tardive, mais voici les réponses aux questions que tu te posais :

-N' est-ce pas qu' on parle bien de mise à jour et pas d' insertion ?
Pour ma part je voudrais insérer des champs de ma table tbl_Extract_Suprem ( appellé SUP dans ma requete) dans ma table tbl_DCR (appelé DCR dans ma requete). J'ai utilisé la fonction mise à jours car je ne veux pas ajouter des lignes dans ma table (tbl_DCR) mais juste rajouter les champs extrait de ma tbl_Extract_Suprem dans les lignes déja existante de ma tbl_DCR tout ca en fontion du numéro de SB ("SB_N°" pour tbl_DCR et "SB Number" et "SB Revision" pour ma tbl_Extract_Suprem).

-Combien de tables sont en jeu dans cetta requete ?
2 : il y a la table tbl_DCR et la table tbl_Extract_Suprem

-tbl_DCR est bien la table destination ?
Oui, je veux mettre à jours ma table tbl_DCR avec les champs extrait de ma table tbl_Extract_Suprem

-SUP est bien la table source ?
Oui, SUP est la table tbl_Extract_Suprem que j'ai renommé dans ma requete.

-Et DCR ?
DCR est la table tbl_DCR que j'ai renommé aussi dans ma requete. Un collegue m'a dit que pour renommer une table dans une requete SQL il suffisait de mettre le nom de la table suivi du nom que l'on désire mettre a la place. (je ne sais pas si dans les requetes SQL en Access cela fonctione)

-De quel type est le champ [SB_N°] de la table DCR ?
[SB_N°] est de type "texte"

-De quel type est le champ [SB Number] de la table SUP ?
[SB Number] est de type texte aussi, comme [SB Revision] de ma table tbl_Extract_Suprem

-Enfin, pourquoi toutes ces manipulations ?
le but de ce morceau de programme est de pouvoir automatiser une mise à jour de la table tbl_DCR. Une personne chargera un fichier Excel dans la table tbl_Extract_Suprem et lorsqu'il cliquera sur "Command27" les champs non rempli de la table tbl_DCR seront remplis automatiquement. Ma table tbl_Extract_Suprem est une table "tampon" qui changera à chaque fois qu'on transferera les données d'Excel vers cette table.


Ai je été un peu plus claire dans mes explications?

n'hésite pas à me demander des précisions si quelques explications sont encore floues.
0
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012
9 juil. 2012 à 11:43
Lorsque tu me parlais de toutes ces manipulations, tu me parlais de toute la requete ou du fait que je ne veuille prendre que les 7 premiers caracteres de [SB_N°]?

Si c'est pour prendre que les 7 premiers caracteres de [SB_N°], c'est que mon [SB Number] de ma tbl_Extract_Suprem correspond au 7 premiers caracteres de [SB_N°] de ma table tbl_DCR. donc ca serait sur le [SB Number] et sur le [Sb Revision] que je me baserais pour savoir sur quel ligne je dois mettre à jours les informations. Lorsque le [SB Number] sera égale au 7 premiers caractere de [SB_N°] et que [SB Revision] sera égale au [SB_rev] (SB_rev est une colonne de ma table tbl_DCR) alors, je pourrais copier les champs qui correspondent à ma requete.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
9 juil. 2012 à 13:30
Bonjour Jaffix,

Tes réponses m' ont convaicu que l' on va y arriver.
Je te posterai ma réponse ce soir.
D' ici là, portes toi bien.

A+




[] Ce qui va sans dire. va mieux en le disant.
0
Jaffix Messages postés 10 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 13 juillet 2012
10 juil. 2012 à 09:33
Encore un grand grand merci LIBRE_MAX pour ces réponses et ces éclaircissements,

Lorsque tu dis si j'ai la main pour ajouter la requete q_tbl_dcr, tu veux dire est ce que je peux créer de nouvelle requete? et lorsque tu dis que cette requete doit etre réalisé manuellement ca revient à dire "avoir la main sur ma requete"? Si c'est le cas, je dirai que oui j'ai la possibilité de créer autant de requete que je veux et autant de table que je veux. Le seul hic dans tout ca (si on peut le considérer comme ca) c'est que j'aimerai bien que lorsqu'on clic sur command27, toutes ces requetes soit transparente pour l'utilisateur.

Pour ce qui est de la requete qui permet de ne prendre que les 7 premiers caractères je ne la vois pas dans la requete mise à jours. C'était de ca que tu parlais lorsqu'il fallait créer une requete manuellement?
0
Rejoignez-nous