26. juni 2002 - 17:15Der 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 -
<% 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 %>
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 %>
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?
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 %>
Tak for hjælpen alle sammen - eagleeyes virkede - vi kvitterer !!
Juhuh !
CryptoBoy
Synes godt om
Ny brugerNybegynder
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.