Probleem met mapping tussen twee tabellen

Status
Niet open voor verdere reacties.

hermes62

Nieuwe gebruiker
Lid geworden
4 mei 2014
Berichten
2
Voor mijn werk ben ik aan het uitzoeken of het mogelijk is om een kolom met een kernwoorden te matchen met een aparte tabel waarbij kernwoord deel uitmaakt van een deel uit maakt afwijkende omschrijving.
Normaliter verwerk ik dit soort acties in een aparte query maar vanwege het grote aantal kernwoorden (Min 10 of meer) zou ik graag vanuit een tabel willen werken.
Indien het kernwoord in het veld van de andere tabel wordt gevonden moeten extra waarden op bestaande velden worden toegevoegd. Heb hiervoor even een tweetal testtabellen aangelegd, te weten:


Tabel: Naam

Naam Uitkomst 1 Uitkomst 2 Uitkomst 3
Jan Test Herman Test Herman Test Herman
Piet Test Herman Test Herman Test Herman
Willem Test Herman Test Herman Test Herman

Tabel: Uitgebreid

Omschrijving Uitkomst 1 Uitkomst Uitkomst 3
Jan gaat vissen Test 1 Test 2 Test 3
Sjaak gaat vissen Test 1 Test 2 Test 3
Ik ga naar Sjaak Test 1 Test 2 Test 3
Ik ga naar Jan Test 1 Test 2 Test 3
Ben gisteren naar Jan gegaan Test 1 Test 2 Test 3
Ben gisteren naar Sjaak gegaan Test 1 Test 2 Test 3

Hierop heb ik de volgende query gemaakt:

Uitkomst 1: IIf([Uitgebreid]![Omschrijving] Like "*[Naam]![Naam]*";[Naam]![Uitkomst 1];[Uitgebreid]![Uitkomst 1])

Indien hij het kernwoord Jan uit de Naam tabel zou herkennen moet hij in dit geval "Test Herman" moeten geven en bij Sjaak "Test 1"

Met deze formule werk het dus niet, kan iemand mij vertellen hoe ik deze formule moet opzetten, zodat hij in dit geval wel jan als deel tekst herkent en de uitkomst 1 uit de Naam tabel overneemt?

Mvg, Herman
 
Om te beginnen: ik snap helemaal niks van je voorbeeld. In de tabel [Naam] herken ik nog wel een veld [Naam] met verschillende namen, maar in de kolommen [Uitkomst 1] t/m [Uitkomst 3] zie ik overal dezelfde waarde staan. Wat is daar het nut van, en hoe kun je dan ooit zien of de uitkomst wel klopt? Maak om te beginnen een db met daarin de test tabellen, zodat we niet alles zelf over hoeven te kloppen. We willen graag helpen, maar voorbeeldjes zelf maken vind ik heel erg zonde van mijn tijd!
Daarnaast: wil je de uitkomst in een query? Want als je twee tabellen naast elkaar zet die niet te koppelen zijn, krijg je een cartesisch product, en volgens mij zit je daar ook niet op te wachten.
 
En nog iets: als je wilt controleren of een veld in (een deel van) een ander veld voorkomt, kun je veel beter testen met Instr.
Code:
InStr(1;[Omschrijving];[Naam])
Dit geeft als uitkomst een getal, waarbij >0 een treffer is, en 0 dus niet voorkomt.
 
Beste Octafish,

Een concreet voorbeeld kan ik niet leveren, maar het gaat hier om de techniek, zodat ik kan zien of deze optie wel of niet werkt.
De essentie van het verhaal is dat beide tabellen geen unieke sleutel bevatten waardoor deze niet op een eenvoudige wijze gekoppeld kunnen worden.
De uitdaging is dat ene tabel middels een deeltekst aan een andere tabel gekoppeld kan worden.
Normaliter verwerk ik een aantal van dit soort statements in één query, maar het is wenselijk om dit via een gekoppelde excel tabel te managen, zodat bij wijzigingen de query niet omgebouwd dient te worden.

Mvg, Herman.
 
Maar ik snap dus nog steeds niet wat je wilt; je hebt 2 tabellen, waarvan 1 met namen, en 1 tabel met een omschrijving waar een naam uit tabel 1 blijkbaar in kan voorkomen. Die twee tabellen zijn niet aan elkaar te koppelen op dit moment, maar hoe zie je dan voor je dat ze wél gekoppeld worden? Het is onmogelijk om ze zo in een query te koppelen want er is geen gemeenschappelijk veld. Hooguit kun je dus een cartesisch product maken waarbij alle records uit beide tabellen voorkomen, en waarbij je met de functie die ik hierboven heb gezet controleer of een naam voorkomt in de omschrijving of niet. De combinaties waarin dat voorkomt hebben een uitkomst die groter is dan 0. Daar zou je dan op kunnen filteren. dan nog valt er niks te koppelen, want de velden zijn niet te koppelen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan