FIck hjälp med denna SQL-sats i en tidigare tråd men dök upp ett problem till.
SQL-sats:
SELECT tavla.start, tavla.stop, tavla.id, tavla.titel, artiklar.id FROM tavla LEFT JOIN artiklar ON artiklar.titel LIKE '%' + tavla.titel + '%' WHERE tavla.start >= #" & Date() & "# AND tavla.stop <= #" & Date() & "# ORDER BY tavla.id, tavla.start
Skulle villa begränsa tabell 2 (artiklar i mitt exempel) till att bara söka bland artiklar med typ = 2. Skrev då satsen så här:
SELECT tavla.start, tavla.stop, tavla.id, tavla.titel, artiklar.id FROM tavla LEFT JOIN artiklar ON artiklar.titel LIKE '%' + tavla.titel + '%' [B]AND artiklar.typ = 2[/B] WHERE tavla.start >= #" & Date() & "# AND tavla.stop <= #" & Date() & "# ORDER BY tavla.id, tavla.start
Detta fungerar inte, får bara ett felmeddelande om felaktigt JOIN expression.
Testade även
SELECT tavla.start, tavla.stop, tavla.id, tavla.titel, artiklar.id FROM tavla LEFT JOIN artiklar ON artiklar.titel LIKE '%' + tavla.titel + '%' WHERE tavla.start >= #" & Date() & "# AND tavla.stop <= #" & Date() & "# [B]AND artiklar.typ = 2[/B] ORDER BY tavla.id, tavla.start
Vilket resulterade i att jag inte får några null-rader som jag är ute efter iom. min join.
SELECT tavla.start, tavla.stop, tavla.id, tavla.titel, artiklar.id
FROM tavla LEFT JOIN artiklar
ON (artiklar.titel LIKE '%' + tavla.titel + '%' AND artiklar.typ = 2)
WHERE tavla.start >= Date()
AND tavla.stop <= Date()
ORDER BY tavla.id, tavla.start
Funktionen date finns i Access så behöver inte anropa VB