Access

bogmarley Messages postés 2 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 4 septembre 2009 - 3 sept. 2009 à 16:04
bogmarley Messages postés 2 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 4 septembre 2009 - 4 sept. 2009 à 16:03
Bonjour alors voila j'ai un problème dans la base de donnée de mon taff elle beaucoup trop volumineuse
Pour essayer de faire simple :
J'ai deux table comportant le même champ et dans le même ordre
La première de ces tables est complète et comporte plus de 25000 enregistrements
La deuxième est partiel et n'a que 1900 enregistrement (c la table qui m?intéresse)

Dans la deuxième table les enregistrements ne sont pas complets donc je voudrai bien pouvoir
Récupérer l'enregistrement dans la première table sachant que toutes les données de la deuxième table ce retrouve dans la première


Table 1
N° envoie Date envoi Localisation pn entreprise
1 01/01/08 aaa 01245-02 aaaaa
8 05/08/06 aze 45646rety aaaab
1 01/07/06 aqw a-0256 acccd

Table 2
N° envoie Date envoi Localisation pn entreprise
1 01/01/08 aaa
1 01/07/06 aze
8 05/08/06 aqw


Comment puis-je construire ma requête de façon a enfaite pouvoir combler les trous dans la deuxième table?
merci d'avant de votre aide et de votre indulgence

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 sept. 2009 à 19:45
Salut
La présentation de tes données n'est pas claire : Il y a plus de titre de colonnes que de données.

Un requète Update suffit (*) :
Update TableCible
   Set t2.monChamp3 = t1.monChamp3,
       t2.monChamp4 = t1.monChamp4
  From TableSource t1, TableCible t2
 Where t2.monChamp1 = t1.monChamp1
   And t2.monChamp2 = t1.monChamp2

(*) Si tu dois vérifier que t2.monChamp3 et t2.monChamp4 sont bien vides pour autoriser leur mise à jour, il faut faire une requète par champ :
Update TableCible
   Set t2.monChamp3 = t1.monChamp3
  From TableSource t1, TableCible t2
 Where t2.monChamp1 = t1.monChamp1
   And t2.monChamp2 = t1.monChamp2
   And t2.monChamp3 Is Null
Update TableCible
   Set t2.monChamp4 = t1.monChamp4
  From TableSource t1, TableCible t2
 Where t2.monChamp1 = t1.monChamp1
   And t2.monChamp2 = t1.monChamp2
   And t2.monChamp4 Is Null

Attention : je pars du principe que le champ vide contient la valeur Null, ce qui est différent d'un champ texte qui ne contiendrait rien, comme ''.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
bogmarley Messages postés 2 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 4 septembre 2009
4 sept. 2009 à 16:03
alors deja merci de ta reponse je vais essayer d'expique plus clairement les different champs:

n° expéditeur (texte) ce trouve dans les 2 tables
type d'imprimé(texte)ce trouve dans les 2 tables
date départ(date/heur)ce trouve dans les 2 tables
provenance(texte)ce trouve dans les 2 tables
refernce(texte) ce trouve dans les 2 tables
n°suivie(numerique)ce trouve dans la table 1 mais pas dans la table 2
code source(texte)ce trouve dans la table 1 mais pas dans la table 2
xxx(texte)ce trouve dans la table 1 mais pas dans la table 2
verrou(texte)ce trouve dans la table 1 mais pas dans la table 2
objet(texte)ce trouve dans la table 1 mais pas dans la table 2
vue(texte)ce trouve dans la table 1 mais pas dans la table 2
observation(texte)ce trouve dans la table 1 mais pas dans la table 2


donc voila j'ai essayer d'etre le plus claire possible pour la definition des champs
mon but est de recupere les données de la table 1 pour venir completer la table 2
la table 1 fait office de grosse base de donnée
la table 2 est une petite partie de cette base de donnée ou il n'y a que les 5 premiers champs qui sont renseigner les autre sont vide et il faud les completer avec les bonnes données de la table 1

desoler pour mes explication plus que obscure mais c assez difficile a expliquer il faud bien apprend!
merci encor merci Jack
0
Rejoignez-nous