Waardevergelijking 2 tabellen en bij match toevoeging van een waarde in de finale tab

Status
Niet open voor verdere reacties.

innersoul

Gebruiker
Lid geworden
20 jan 2011
Berichten
11
2 tabellen waarvan de kolom [TGT] uit tabel [TARGET2011_IN]met waarde IN enkel moet gekopieerd worden naar tabel [FINAL] en enkel daar waar beide waardes uit kolom [INAMI] dezelfde zijn. Alle gegevens uit tabel [FINAL] moeten dus behouden blijven maar aangevuld met een kolom [TGT] met de waarde IN daar waar beide INAMI waardes overeenkomen.
Dus eigenlijk moeten de waardes van de kolom [INAMI] uit beide tabellen vergeleken worden en indien een match, dan de waarde IN invullen in de kolom [TGT] van tabel [FINAL].
Ik kan voorlopig geen vb uploaden.

Lijkt simpel en zal het wel zijn maar geraak er niet uit.

Alvast bedankt
Patrik
 
Je hebt in de tabel Final neem ik aan het veld TGT al aangemaakt. Je zou dan een bijwerkquery kunnen maken waarbij je de tabellen [TARGET2011_IN] en [FINAL] aan elkaar koppelt op basis van het veld [INAMI]. De regel <Wijzigen in> krijgt dan de tekst "IN"
 
Dat was het eerste waar ik aan dacht maar krijg een error bij uitvoering " Type mismatch in expression". Dus ik zit ergens fout.
 
De gegevens moeten uiteraard wel aan elkaar te koppelen zijn. "Type mismatch in expression" betekent meestal dat je een numeriek veld probeert te koppelen aan een tekstveld o.i.d. Zonder voorbeeld kan ik dat uiteraard niet beoordelen. Als je de twee tabellen in het venster Relaties aan elkaar kunt koppelen met <Referentiële integriteit afdwingen> aangevinkt, dan ligt daar het probleem niet. Lukt dat niet, dan dus wel...
 
't Is (uiteraard) wel wat ik dacht: je probeert een tekstveld uit tabelA te koppelen aan een numeriek veld in kolomB. Eén van de twee moet worden omgezet. Ik heb het numerieke veld omgezet naar tekst, maar andersom mag uiteraard ook, al raak je dan voorloopnullen kwijt. Bovendien heb je in de tabel [FINAL] geen sleutelveld. En dat zou [INAMI] toch wel moeten zijn. Dit is de update query:
Code:
UPDATE FINAL INNER JOIN TARGET_IN ON FINAL.INAMI = TARGET_IN.INAMI SET FINAL.TGT = [TARGET_IN].[TGT] 
WHERE (TARGET_IN.TGT='IN');
 
Bedankt.
Ik had idd al wel het text veld omgezet naar numeriek om een overeenstemming te krijgen maar verloor idd alle gegevens. Hierdoor dacht ik dat het dat ook niet was. Had nu wel niet uitgeprobeerd om het andersom te doen. Wat is trouwens de reden dat de waardes verdwijnen bij omzetting ?
 
Laatst bewerkt:
Zodra je een tekstveld omzet naar een numeriek veld, accepteert Access in dat veld geen gegevens die niet 100% numeriek zijn. Deze worden dan verwijderd. Dus een tekstveld met een getal met spatie wordt leeggemaakt, hetzelfde getal zonder spatie zou geconverteerd kunnen worden naar een getal. Andersom speelt dat niet, omdat een tekstveld zowel cijfers als tekst mag bevatten. Omzetten van numeriek naar tekst gaat dus doorgaans wel goed. Je hoeft eigenlijk alleen rekening te houden met het aantal tekens voor het tekstveld: maak je dat drie tekens, dan zal een getal als 2034432 een probleempje opleveren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan