Avatar billede cryptoboy Nybegynder
26. juni 2002 - 17:15 Der er 5 kommentarer og
1 løsning

Select Case med % værdi til forespørgsel - Criteria mismatch

Jeg har en formular der sender indhold fra et fritekstsøgningsfelt ("free") og et rullegardin ("Region") videre til en resultatside der så lister resultaterne trukket fra en access-db - Fint nok ! Nu vil jeg gerne vise et forskelligt billede for hver af de værdier der kommer fra Regionsfeltet - Så har jeg gjort sådan her inde i image URL feltet :

<%
Select Case Request.Form ("Region")
Case 1
  Response.Write "sjaelland.gif"
Case 2
  Response.Write "bornholm.gif"
Case 3
  Response.Write "fejoe.gif"
Case 5
  Response.Write "fyn.gif"
Case Else
Response.Write "denmark.gif"
End Select
%>

Men nu er problemet at en af værdierne fra Regionsfeltet skal afsøge ALLE regioner - altså værdien % - og den værdi kan jeg ikke få med i min select case eller hur ? Her er fejlmeddelelsen -

Microsoft VBScript runtime error '800a000d'

Type mismatch: '[string: "%"]'

Håber nogen kan hjælpe !!!

MVH cryptoBoy
Avatar billede askhoej Praktikant
26. juni 2002 - 17:21 #1
<%
Select Case Request.Form ("Region")
Case 1
  Response.Write "sjaelland.gif"
Case 2
  Response.Write "bornholm.gif"
Case 3
  Response.Write "fejoe.gif"
Case 5
  Response.Write "fyn.gif"
Case "%"
  ' Det den skal gøre
Case Else
Response.Write "denmark.gif"
End Select
%>
Avatar billede cryptoboy Nybegynder
26. juni 2002 - 23:23 #2
Hejsa askhoej,

Og tak for svaret - Det med at lave %-tegnet til string har jeg også prøvet - uden held : Er det muligvis noget med de halvgiftige replacesætninger for at undgå fejl på "" og '' tegn i input-feltet ? -

Vi bringer et uddrag :

<%
Dim RsSearchResult__freevar
RsSearchResult__freevar = "%"
if (Request.Form("free")      <> "") then RsSearchResult__freevar = Request.Form("free")     
%>
<%
Dim RsSearchResult__regvar
RsSearchResult__regvar = "%"
if (Request.Form("Region")          <> "") then RsSearchResult__regvar = Request.Form("Region")         
%>
<%
set RsSearchResult = Server.CreateObject("ADODB.Recordset")
RsSearchResult.ActiveConnection = MM_ConnHoest_STRING
RsSearchResult.Source = "SELECT *  FROM HMbrutto2404  WHERE EjerNavn LIKE '%" + Replace(RsSearchResult__freevar, "'", "''") + "%' AND RegID LIKE '" + Replace(RsSearchResult__regvar, "'", "''") + "'"
RsSearchResult.CursorType = 0
RsSearchResult.CursorLocation = 2
RsSearchResult.LockType = 3
RsSearchResult.Open()
RsSearchResult_numRows = 0
%>
<%
Dim Repeat1__numRows
Repeat1__numRows = -1
Dim Repeat1__index
Repeat1__index = 0
RsSearchResult_numRows = RsSearchResult_numRows + Repeat1__numRows
%>

Jaja - så deet ...

MVH CryptoBoy
Avatar billede coltau Juniormester
27. juni 2002 - 09:28 #3
Hvad med at ændre %-tegnet til 0 i formen. Det vil måske løse en del. problemer.
Avatar billede eagleeye Praktikant
27. juni 2002 - 11:41 #4
hvad kan Request.Form ("Region") indehold???
Og hvad vil den typisk indholde, kom gerne med et par eksempler med tal og andre tegn (%) ??
kan det være en kombination af tal og tegn, eks 2%3?
Avatar billede eagleeye Praktikant
27. juni 2002 - 11:45 #5
Hvis vi antger den kun kan indeholde et tegn er det leteste nok at test som streng:

<%
Select Case CStr(Request.Form ("Region"))
Case "1"
  Response.Write "sjaelland.gif"
Case "2"
  Response.Write "bornholm.gif"
Case "3"
  Response.Write "fejoe.gif"
Case "5"
  Response.Write "fyn.gif"
Case "%"
  ' Det den skal gøre
Case Else
  Response.Write "denmark.gif"
End Select
%>
Avatar billede cryptoboy Nybegynder
27. juni 2002 - 15:40 #6
Tak for hjælpen alle sammen - eagleeyes virkede - vi kvitterer !!

Juhuh !

CryptoBoy
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester