Hej Du kommer inte undan utan att skriva kod, men du kan underlätta lite i alla fall. Vet inte om detta känns bättre? Mycket trevligare lösning Verkar som jag ropade hej för tidigt =) Vad bra!Query problem med null som möjlig input.
Jag har ett problem där jag försöker skapa en query i Access där jag får ange parametrar när query körs och att den sedan ska acceptera "null" som input då jag ofta vill lista alla i vissa fält.
Har dock löst det men det är inte ett snyggt sätt så vill höra om det finns ett bättre.
Här är ett scenario för att beskriva vad jag vill göra:
Har först en tabell(Table1) med bredd och längd angett.
Sen skapar jag en query som innehåller följande SQL kod:
SELECT Table1.Width, Table1.Length
FROM Table1
WHERE (((Table1.Width)=[What width?]) AND ((Table1.Length)=[What length?])) OR (((Table1.Width)=[What width?]) AND (([What length?]) Is Null)) OR (((Table1.Length)=[What length?]) AND (([What width?]) Is Null)) OR ((([What length?]) Is Null) AND (([What width?]) Is Null));
Nu ser ni säkert att WHERE satsen blir lite jobbig men den innehåller alla tänkbara möjligheter till input jag kan ge. Dvs anger jag längd men lämnar bredd blank får jag alla bredder men bara en viss längd.
Är båda input blanka får jag hela listan osv..
Denna lösning funkar men blir ohållbart om jag vill ha 7-10 fält att söka på.
Redan vid 2 fält är det 4 kombinationer och vid 7 fält är det 128 så det blir snabbt ohanterligt.
Nån som har en fin lösning på detta?
/PederSv: Query problem med null som möjlig input.
SELECT t1.Width, t1.Length
FROM Table1 t1
where (t1.width = @width or @width is null)
and (t1.length = @length or @length is null)
Skall du kunna skicka in '' också , kan du skriva
SELECT t1.Width, t1.Length
FROM Table1 t1
where (t1.width = @width or @width is null or @width='')
and (t1.length = @length or @length is null or @length='')
Sv:Query problem med null som möjlig input.
Tackar och bockar för hjälpen.
/PederSv:Query problem med null som möjlig input.
Access 2007 verkar ha någon form av autokorrigering där om jag går mellan SQL läge och Design läge så uppdaterar den sql koden till något som liknar mitt första exempel.
Bara det att när den gjort det på de 7-8 fält jag använder så säger den att frågan blir för komplex, antagligen för att det blir ett 20 tal sidor SQL kod istället för ett 10 tal rader som i exemplet övan.
Kan kanske även vara relaterat till att jag splittade databasen 2 för att få tabeller i en och resten i den andra?
Kanske måste jobba med koden i exempelvis notepad och sen klistra in den, spara och undvika design mode?..lol
Såg just att det är när man sparar i design läge som det strular medan om man väljer att spara i sql läge så går det bra.
/Peder Sv: Query problem med null som möjlig input.
Gå över till SQL-Express 2005 istället så kan du skriva hur komplext du vill och få en äkta databas. Det är lätt att importera en accessdatabas till SQL Server Express, och den är gratis.