Får man gissa på att memberid är ett talfält?
I så fall, kasta bort apostroferna runt värdet.
Mvh,
8 svar · 260 visningar · startad av SilvioF
Halloj på er. Behöver lite hjälp med en liten sak.
Jag får meddelandet:
Data type mismatch in criteria expression.
när jag försöker köra fljande sql-sats.
SELECT memberID, FName, LName, Birthdate FROM tblMembers WHERE memberID = '0001' OR FName LIKE '%00001%' OR LName LIKE '%00001%' OR Birthdate = '1972-10-18' ORDER BY memberID, LName, FName, Birthdate
Någon som ser felet?
Får man gissa på att memberid är ett talfält?
I så fall, kasta bort apostroferna runt värdet.
Mvh,
Vilka datatyper har de olika kolumnerna?
Du kan ju testa med att ta ett villkor i taget för att på så sätt se vilket det är som ger upphov till felet.
Nope, memberID har datatypen varchar. Det var min första tanke också att jag hade gjort fel datatyp. Det skall vara varchar eftersom memberID kommer att se ut som 0a7f efter ett tag.
Ok, då får du berätta för oss vad de olika kolumnerna har för datatyper.
Kör du Microsoft SQL Server?
Felet låter som om det är Access och i så fall så är det nog datumet som ställer till problem
SELECT memberID, FName, LName, Birthdate FROM tblMembers WHERE memberID = '0001' OR FName LIKE '%00001%' OR LName LIKE '%00001%' OR Birthdate = #1972-10-18# ORDER BY memberID, LName, FName, Birthdate
Jupp, jag kör SQL2000.
Datatyperna är:
memberID, varchar(10)
FName, varchar(50)
LName, varchar(50)
Birthdate, DateTime
Jag lagrar Birthdate som ett giltigt datum i databasen, det är redan kontrollerat.
Fick det att funka till slut. På ett lite konstigt sätt. Jag ändrade till
SELECT memberID, FName, LName, Birthdate FROM tblMembers WHERE memberID [b]LIKE[/b] '0001' OR FName LIKE '%00001%' OR LName LIKE '%00001%' OR Birthdate = '1972-10-18' ORDER BY memberID, LName, FName, Birthdate
så funkade det helt felfritt.
Det där verkar skumt. Om du kan använda like så skall det fungera med = också.