2010-03-24 5 views
0

Je suis un peu gêné de demander ça ici, mais voilà:Copie d'un champ à l'autre table dans Access

J'ai deux tables, que vous pouvez voir ici:

http://img411.imageshack.us/img411/4562/query.jpg

J'ai besoin de copier l'effecteur d'une table dans l'autre, en s'assurant que les valeurs maintiennent toujours les relations de correction. La clé primaire pour chacun est une combinaison de loggerid & datetime. Quelle est la meilleure façon de faire cela?

Merci à l'avance, et ne font pas plaisir :)

Répondre

1

Modifier à une mise à jour de requête à la place. Les jointures devraient fonctionner correctement, mais n'ajouteront pas de lignes manquantes. Pour ce faire, vous utiliserez une requête Ajouter, comme vous avez configuré, mais avec une jointure à gauche et une vérification des valeurs nulles. L'exemple ci-dessous met à jour la table LogID avec les informations résidant dans la table LogSiteID.

Append documents manquants de Logger ID du site à LOGID

INSERT INTO logID ([Datetime], loggerid, temp, effortid) 
SELECT ls.datetime, ls.loggerid, ls.temp, ls.effortid 
FROM logID AS l RIGHT JOIN [Logger Site ID] AS ls ON (l.temp = ls.temp) AND (l.loggerid = ls.loggerid) AND (l.Datetime = ls.datetime) 
WHERE (((l.loggerid) Is Null)); 

Mise à jour de effortids Logger ID du site à LOGID

UPDATE logID AS l INNER JOIN [Logger Site ID] AS ls ON (l.Datetime = ls.datetime) AND (l.temp = ls.temp) AND (l.loggerid = ls.loggerid) SET l.effortid = [ls].[effortid]; 
+0

Hey c'est fantastique. Merci beaucoup! C'est en fait le cas où j'essaie d'ajouter logid.effortid à loggersiteid.effortid, y compris ces valeurs nulles. Je vais batifoler et essayer de faire fonctionner cela en fonction de votre réponse. –

Questions connexes