Detta SQL-uttryck fungerar så att jag får önskat resultat på en Dataåtkomstsida Testa: Tack Andreas. Vad är det som inte funkar? DAP-sidan visar inga poster alls. Jag har testat på exempeldatabasen Northwind och där får jag fram poster på DAP-sidan. Jag har byggt en DAP-sida på frågan "Försäljning per land och år"och en på formuläret "Försäljning per år (dialogrutan)". Båda två ger samma antal poster med samma parametrar. Jag har jämfört källkoderna mellan den som jag inte får några poster i med Nortwind och då kan jag inte upptäcka någon synlig skillnad mellan dem. Jag kör Access 2000 på XP Pro, men det gör jag ju i bägge fallen så det kan ju knappast spela in. Det enda som jag lagt märke till är att när jag får upp dialogrutan för DAP-sidan som bygger på formuläret i Northwind så ryms ej all text efter rutorna där parametervärdena skall skrivas in men då slutar den med ... När jag får upp min egen dialogruta så visas endast första delen av SQL-uttrycket. Is NUll och OR-delen syns inte om det nu kan ha betydelse. Vad kan nu tänkas vara fel? Jag har inte arbetat med Data Access Pages. Tittade lite snabbt i Access 2003. Det ser ut de använder ADO. Tack Andreas!Vilket fel har Where-satsen i detta SQL-uttryck?
SELECT [Ursprungstabell].[Nr], [Ursprungstabell].[By], [Ursprungstabell].[Familjenummer], [Ursprungstabell].[Personnamn]
FROM Ursprungstabell
WHERE (([Ursprungstabell].[By]) Like [ Formulär]!frmName!txtNamn);
Men om jag vill utöka detta på följande sätt
WHERE (([Ursprungstabell].[By]) Like IIF(ÄrNull[ Formulär]!frmName!txtNamn)OR Like [ Formulär]!frmName!txtNamn & "**";
till att användaren endast ska behöva veta vad uttrycket börjar med så fungerar inte det inte alls.
Vad ska till för att få båda varianterna att fungera?Sv: Vilket fel har Where-satsen i detta SQL-uttryck?
WHERE (([Forms]!frmName!txtNamn) IS NULL) OR ([Ursprungstabell].[By] Like [Forms]!frmName!txtNamn & "*"))
Sv:Vilket fel har Where-satsen i detta SQL-uttryck?
Det fungerar bra i frågan MEN
när jag gör en Dataåtkomstsida på frågan som bas så funkar det inteSv: Vilket fel har Where-satsen i detta SQL-uttryck?
Ger den et felmeddelande visar den fel resultat?Sv:Vilket fel har Where-satsen i detta SQL-uttryck?
Tack på förhandSv: Vilket fel har Where-satsen i detta SQL-uttryck?
Isåfall så är ditt joker tecken fel:
<code>
WHERE (([Forms]!frmName!txtNamn) IS NULL) OR ([Ursprungstabell].[By] Like [Forms]!frmName!txtNamn & "%"))
</code>
Eftersom det inte verkar, för mig i Access 2003, gå att komma åt formulär fält så kan du använda namngivna parametrar:
PARAMETERS txtNamn Text ( 255 );
SELECT Ursprungstabell.Nr, Ursprungstabell.By, Ursprungstabell.Familjenummer, Ursprungstabell.Personnamn
FROM Ursprungstabell
WHERE ((([txtNamn]) Is Null)) OR (((Ursprungstabell.By) Like [txtNamn] & "%"));
Denna fråga verkar retunera det som den skall hos mig.
Men eftersom parametern angivit i Data Access Page dialogen alltid är en sträng. Den omvandlar inte toma strängar till null så som access. Räcker det med:
PARAMETERS txtNamn Text ( 255 );
SELECT Ursprungstabell.Nr, Ursprungstabell.By, Ursprungstabell.Familjenummer, Ursprungstabell.Personnamn
FROM Ursprungstabell
WHERE Ursprungstabell.By Like [txtNamn] & "%";
De tre punkterna är en egenskap hos listview. Den döljer bara texten.
Sv:Vilket fel har Where-satsen i detta SQL-uttryck?
Om jag ändrar jokertecknet från "*" till "%" så fungerar inte frågan i Access men den fungerar i min Data Access Pages!!! Å nu var det ju där jag ville att den skulle fungera så nu får jag säga tack och Amen för denna gång så kan jag gå vidare med att göra mina DAP-sidor och kan tänka på användarvänligheten i stället