Gegevens uit 2 tabellen vergelijken en kopieren

Status
Niet open voor verdere reacties.

CindySparkle

Nieuwe gebruiker
Lid geworden
23 jul 2015
Berichten
3
Hoi iedereen,

Ik ben momenteel een CRM-database aan het opstellen maar ben nog niet zo lang met ACCESS vertrouwd.
Vandaar mijn vraag op dit forum.

Ik heb een ellenlange lijst met datagegevens van klanten/prospecten.
Deze tabellijst heeft velden als "Company Name, Street Address, Address Number, Postal Code, City".
Omdat dit Belgische datagegevens van firma's zijn, heb ik daarnaast een tabel gemaakt met de 3 kolommen :
1) Postcode 2) Plaatsnaam 3) Postcode - Plaatsnaam

Hieronder heb ik een screenshot genomen van de 2 tabellen, om het duidelijker te maken.
Table_data_postcode.jpg
Relatie_data_postcode.jpg

Nu zou ik graag met een query automatisch de 3de tabel (tbl_postcode-plaatsnaam) overnemen in mijn eerste tabel, namelijk mijn tbl_data.
Door gewoon de selectiequery te nemen (die automatisch op inner join staat), lukt dit vrij goed maar mijn probleem is :
de query neemt niet alle records mee, omdat sommige postcodes in Belgie dubbel gebruikt kunnen worden. Bijvoorbeeld. De postcode 1090 hoort bij de gemeente JETTE, maar omdat Jette is Brussel ligt, kan men dit ook schrijven als 1090 Brussel.

Hoe zorg ik ervoor dat als de CITY en de PLAATSNAAM niet aan elkaar gelijk zijn (bv. Jette - Brussel), dat hij dan toch de 3de kolom overneemt ?
Dus bijvoorbeeld, als er in mijn datatabel 1090 Brussel staat en in mijn postcode-tabel 1090 Jette.

Ik dacht dit met de volgende expressie
Expr1: IIf(([tbl_data].[CITY]=[Tbl_postcode].[Plaatsnaam]) And ([tbl_data].[POSTAL CODE]=[Tbl_postcode].[Postcode]);[tbl_postcode].[Postcode - Plaatsnaam];([Tbl_postcode].[Postcode]) And ([Tbl_postcode].[Plaatsnaam]))

maar dit werkt niet. Moet ik hiervoor iets meer complex gebruiken ?
Bedankt alvast !
 
Laatst bewerkt:
Allereerst natuurlijk welkom bij HelpMij :). Ik snap je vraag niet helemaal. Je hebt een tabel tblData met daarin klantgegevens en adresgegevens. En ook een tabel tblPostcode met daarin (zo te zien best veel) adressen die niet voorkomen in tblData, of andere plaatsnamen hebben. De query die je nu hebt gemaakt laat alleen de klanten zien waarvan de adressen identiek zijn. Dat betekent automatisch dat jouw formule nooit kan werken, want als in de gegevens de plaatsnamen altijd identiek zijn, hoe kan de Onwaar kant (waar het jou om gaat) dan ooit voorkomen?
Je kunt eens proberen alleen te koppelen op Postcode (zou genoeg moeten zijn namelijk) en met een criterium te werken. Dat criterium is dan op het veld tblData.City en is dan iets als: <> tblPostcode.Plaatsnaam.
 
Hoi hoi,

bedankt voor je antwoord en sorry voor de late reactie.
Ik heb dit weekend nog eens verschillende dingen uitgeprobeerd (uiteraard hetgene jij zei als eerste) maar het lukt maar niet omdat een postcode ook voor verschillende gemeenten staan (was ik vergeten te zeggen, sorry).

Dus, als ik het criterium <> tblPostcode.Plaatsnaam neem op het veld tblData.City, dan toont hij me veel te veel data

Ik zal weer een voorbeeld plaatsen, zodat je hopelijk beter begrijpt wat ik bedoel.
Table_query_postcode_case.jpg

Dit zijn dus de 2 cases : ofwel heb ik te weinig records (want degene waarbij de City verschilt van de Plaatsnaam staat er niet bij) ofwel heb ik teveel records.
Enig idee hoe ik dit kan oplossen ?
Bedankt alvast !
 
Ik snap nog steeds niet helemaal hoe je data nu georganiseerd is. Een postcode zou uniek moeten zijn, dus maar één keer voorkomen in je tabel. In je nieuwe plaatje heb je voor postcode 5190 al drie verschillende namen! Dat kan toch niet? Elke postcode zou altijd moeten verwijzen naar één unieke naam. In je oorspronkelijke vraag had je als voorbeeld PC 1090 dat Jette in Brussel moet zijn. Als ik die postcode opzoek in de Belgische Postcodetabel, vind ik dit staatje:

Code:
Postcode	Gemeente	PC Hoofdgemeente	Hoofdgemeente	Provincie
1000	Brussel	1000	Brussel	Brussels Hoofdstedelijk gewest
1020	Laken (Bru.)	1000	Brussel	Brussels Hoofdstedelijk gewest
1120	Neder-over-Heembeek (Bru.)	1000	Brussel	Brussels Hoofdstedelijk gewest
1130	Haren (Bru.)	1000	Brussel	Brussels Hoofdstedelijk gewest

In dit lijstje is Jette een zelfstandige gemeente met wel een koppeling op Provincie. Je tweede lijstje is dan wat duidelijker:

Code:
Postcode	Gemeente	PC Hoofdgemeente	Hoofdgemeente	Provincie
5190	Balâtre	5190	Jemeppe-sur-Sambre	Namen
5190	Ham-sur-Sambre	5190	Jemeppe-sur-Sambre	Namen
5190	Jemeppe-sur-Sambre	5190	Jemeppe-sur-Sambre	Namen
5190	Mornimont	5190	Jemeppe-sur-Sambre	Namen
5190	Moustier-sur-Sambre	5190	Jemeppe-sur-Sambre	Namen
5190	Onoz	5190	Jemeppe-sur-Sambre	Namen
5190	Saint-Martin	5190	Jemeppe-sur-Sambre	Namen
5190	Spy	5190	Jemeppe-sur-Sambre	Namen

Die zijn allemaal gekoppeld aan de hoofdgemeente Jemeppe-sur-Sambre. Wat je zou moeten doen dus in je eigen bestand (tblData) is de complete lijst opnemen, en je adressenbestand ofwel uitbreiden met een veld HoofdPC, en dat vullen op basis van de uitgebreide tabel, ofwel de pc's vervangen door de pcnummers uit het veld hoofdPC. Die kun je met een Totalenquery uniek maken in een query.
 
PC België.png
Nog even een plaatje van hoe ik je tabel(len) zou maken
 
Hoi hoi,

een postcode zou inderdaad uniek moeten zijn, helaas is dit in België niet het geval.
Een postcode kan staan voor verschillende gemeenten.
Het documentje dat ik van de site van bpost heb afgehaald, is het volgende (excel-file):
Bekijk bijlage tbl_postcode.zip

Maar je redenering met hoofdgemeentes en bijgemeentes klopt waarschijnlijk wel.
Ik zal dit zo meteen verder uitzoeken en ik kom hierop terug !
Bedankt alvast !
 
Ik zou in ieder geval dan de hoofdgemeentes toevoegen en daar je queries op baseren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan