not like icm tabel

Status
Niet open voor verdere reacties.

paadriaans

Gebruiker
Lid geworden
1 mei 2013
Berichten
5
Is het mogelijk "not like" te gebruiken icm een tabel waarin de teksten staan die moeten worden uitgesloten in een query?

Nu gebruik ik telkens "not like *tekst* or not like *tekst2*" etc

Ik wil dit niet in VBA maar gewoon in een tabel de voorwaarden opnemen.
 
Oftewel iets als:
Code:
SELECT Waarde FROM JouwTabel
WHERE JouwTabelID Not In (SELECT JouwTabelID FROM JouwTabel, Tekst WHERE JouwTabel.Waarde Like "*" & Tekst.Tekst & "*");
Waarbij JouwTabel de waardes bevat die wilt selecteren Tekst de teksten bevat die moeten worden uitgesloten.
 
heel erg bedankt maar het lukt mij niet maar ik ben ook geen sql expert.

Het lukt mij wel deels maar mijn uitkomst in de query geeft veel meer regels terug dan er in de tabel staat. Waarschijnlijk omdat er meerdere uitsluitingen zijn. Ik heb een voorbeeld van Access bijgesloten.

Ik kom dus niet met een query die de teksten uitsluit.

TBL_Crediteuren is de bron. TBL_Uitsluiten geeft de delen van de tekst (bijv vracht moet ook vrachtkosten uitsluiten) aan. Ik wil graag een query die de regels aangeeft zonder de uitsluitingen.
 

Bijlagen

Welke query heb je zelf al gemaakt?
 
Je voorbeeldje is niet heel geweldig, omdat je lastig kunt filteren. Ik heb er een Autonummerveld bijgezet (in tbl_Crediteuren) waardoor het simpel is om op basis van een subquery de gewenste records (op basis van dat nummer) weg te filteren. De eindquery ziet er dan zo uit:

Code:
SELECT ID, Boekstuk, Rekening, Omschrijving
FROM TBL_Crediteuren
WHERE ID Not In (SELECT ID FROM TBL_Uitsluiten WHERE InStr(1,[Omschrijving],[Tekst])>0)

Mocht je er niet uitkomen, dan post ik mijn bestandje wel :).
 
En met jouw tweede voorbeeldje, zonder ID, krijg je dit:
Code:
SELECT DISTINCT Boekstuk, Rekening, Omschrijving
FROM TBL_Crediteuren, TBL_Uitsluiten
WHERE Omschrijving Not In (SELECT [Omschrijving] FROM TBL_Uitsluiten WHERE InStr(1,[Omschrijving],[Tekst])>0)

Overigens zijn de uitkomsten niet gelijk (225 om 217 records) dus je moet maar even kijken welk resultaat klopt :).
 
Met deze query vind je alle records die je niet wilt vinden:


Code:
SELECT Boekstuk, Rekening, Omschrijving, Boekstuk & Rekening & Omschrijving AS Sleutel
FROM TBL_Crediteuren, TBL_Uitsluiten
WHERE Omschrijving LIKE "*"&Tekst&"*";
En met deze query alle records die je wel wilt vinden.
Code:
SELECT TBL_Crediteuren.Boekstuk, TBL_Crediteuren.Rekening, TBL_Crediteuren.Omschrijving, TBL_Crediteuren.Boekstuk & TBL_Crediteuren.Rekening & TBL_Crediteuren.Omschrijving AS Sleutel
FROM TBL_Crediteuren
WHERE  TBL_Crediteuren.Boekstuk & TBL_Crediteuren.Rekening & TBL_Crediteuren.Omschrijving NOT IN
(SELECT Boekstuk & Rekening & Omschrijving AS Sleutel
FROM TBL_Crediteuren, TBL_Uitsluiten
WHERE Omschrijving LIKE "*"&Tekst&"*";)
Het zou een stuk eenvoudiger worden als je in je tabellen een ID opneemt.
 
AHhulpje leest andere berichten niet :). Ik ben er overigens ook achter waarom er zoveel verschil zit in de versie met ID en de versie zonder: er zitten 9 dubbele records in je brontabel, en die verzieken dus het resultaat. Het gaat dan om deze records:

221340374515100PathXL Managed Service Hosting3
221572814621700CYTOSORB EC PRIMING SET P85762
221593204612450BIOLAMININ 521 LN (LN521)2
230042744612201F18-FDG FLACON A (IO-AANTAL) M2
230042764612201F18-FDG FLACON A (IO-AANTAL) M2
230042784612201F18-FDG FLACON A (IO-AANTAL) M2
230102824432200Vracht en verpakkingskosten5
230102824432500Vracht en verpakkingskosten5
230172624612510MassCheck Cortisol, Cortisone2

[TH="bgcolor: #c0c0c0"] Boekstuk Veld [/TH]
[TH="bgcolor: #c0c0c0"] Rekening Veld [/TH]
[TH="bgcolor: #c0c0c0"] Omschrijving Veld [/TH]
[TH="bgcolor: #c0c0c0"] AantalDuplicaten [/TH]

Daar zou ik dus zeker ook even naar kijken, als ik jou was.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan