mismatch error??

ASP

6 svar · 200 visningar · startad av niclas.j

Medlem sedan juni 2000120 inlägg
Trådstart#1

Hej.
Jag har ett formulär med en list meny, den hämtar namn från ett fält i tabellen namn. den ska sedan öppna sida2 beroende på just det fältnamnet öppningen ser ut som följer:

visa= "SELECT * From tabell2 WHERE access=" & Request.Form("namn") & ""

men jag får hela tiden syntax error:
Data type mismach in criteria expression

vad kan det bero på??? på sidan med felmedelandet ser man att den hämtat rätt under "POST"
namn=blabla submit=ok

/niclas

Medlem sedan juni 200032 967 inlägg
#2

antar att access är ett fält av texttyp.

prova följande:

visa= "SELECT * From tabell2 WHERE [access]='" & Request.Form("namn") & "'"

mvh,

Medlem sedan juni 2000120 inlägg
#3

ja du @nders tänk att jag glömde enkel fnuttarna igen...Tack

appropå det betyder enkelfnuttarna att man gör om det till string? har aldrig riktigt vetat varför man skriver så...

/niclas

Medlem sedan dec. 19998 577 inlägg
#4

Att du sätter enkelfnuttar betyder att du anger att värdet inom dem är text... utan dom säger du att de är Integer, och i Access så betyder # att det är ett datum...

Medlem sedan juni 2000120 inlägg
#5

Hej vide.
alltså, om man inte deklarerar ett värde så antas det att det är en Integer? tex vad/hur skriver man om man vill ha värdet i byte, long, single? och hur är det med "variant?" kan vara intresant att veta om man har sådana värden i databasen..

/niclas

Medlem sedan dec. 19998 577 inlägg
#6

I en SQL-sats kan du inte deklarera en tom variabel som integer, det kommer att ge ett felmeddelande:

SQL = "Select * from tblUsers where userid = "&tom_var&" Order by dtm Desc"

Kommer att ge ett felmeddelande...

Long och single är väl också sorter av integer så samma sak gäller där. Vad gäller Byte så vet jag inte faktiskt.

Variant skulle jag tro är en text i SQL men nu blir jag väldans osäker... @nders? Emission? Nån? :)

Medlem sedan juni 200032 967 inlägg
#7

variant är någonting som inte existerar i databasen.

huruvida du väljer att ha apostrofer runt värdet i din sql-fråga, har inget att göra med vad värdet är för datatyp. det har att göra med vad databasen förväntar sig.

exempelvis har du en tom variant som du på något sätt skall sparka in i en kolumn i din tabell av typen text så är det inga problem. om däremot kolumnen är av typen tal, så måste du sätta den tomma varianten till null, annars får du syntaxfel i din sql-fråga.

alltså: är kolumnen i accesstabellen av text- eller pm/memo-typ, så skall värdet i sql-frågan omslutas av apostrofer. är kolumnen definierad som tal så får du inte ha apostrofer. är det en kolumn som är av typen datum, skall brädgård omsluta värdet.

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
115 ms — ändringar (db)