/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Select case - hvordan ?
Fra : Kim Kølerfeldt


Dato : 01-03-02 09:25

Hej !

Jeg har en Access-fil med forskellige varer, sorteret efter en kolonne med
to-cifrede ID-numre. Afhængig af, om ID'et begynder med 1, 2, 3 eller 4 skal
linierne have hver deres farve....

Hvor skal select-case'en stå i forhold til SQL'en ? ....Er select-casen
skrevet forkert ? Dette her virker ikke:


<%
strSQL = "SELECT * FROM products ORDER BY ID"
set oRS= oConn.execute(strSQL)
%>

<%
varCategory = oRS("ID")
Select Case varCategory
Case Cat1*
varTextColor = "Red"
Case Cat2*
varTextColor = "Blue"
Case Cat3*
varTextColor = "Balck"
Case Cat4*
varTextColor = "Grey"
End select
%>

Fejlmeddelelsen viser, at den vil ikke kendes ved oRS("ID) ??

Hva' æh...........

/Kim K.



 
 
Jesper Stocholm (01-03-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 01-03-02 10:27

"Kim Kølerfeldt" <kim.koelerfeldt@get2net.dk> wrote in
news:9PGf8.27$Iz5.866@news.get2net.dk:

> Hej !
>
> Jeg har en Access-fil med forskellige varer, sorteret efter en kolonne
> med to-cifrede ID-numre. Afhængig af, om ID'et begynder med 1, 2, 3
> eller 4 skal linierne have hver deres farve....
>
> Hvor skal select-case'en stå i forhold til SQL'en ? ....Er
> select-casen skrevet forkert ? Dette her virker ikke:
>
>
><%
> strSQL = "SELECT * FROM products ORDER BY ID"

for det første vil jeg råde dig til eksplicit at nævne de kolonner du
trækker ud af din tabel. Stjerne-angivelsen er noget hø :) Dvs lav din SQL om til

strSQL = "SELECT Field1,Field2,Field3,ID FROM products ORDER BY ID"


> set oRS= oConn.execute(strSQL)
> %>
>
><%
> varCategory = oRS("ID")

Dette giver ikke mening, da du her kun vil arbejde med den første række i
dit resultatsæt. Du er nødt til at løbe resultatet igennem, og for hver
række undersøge, hvad det første tal i ID-kolonnen er. Jeg forstår i
øvrigt ikke, hvad Cat1* gør ... men det er måske blot mig.

> Select Case varCategory
> Case Cat1*
> varTextColor = "Red"
> Case Cat2*
> varTextColor = "Blue"
> Case Cat3*
> varTextColor = "Balck"
> Case Cat4*
> varTextColor = "Grey"
> End select
> %>
>

Prøv kode som dette:

<table>
<%
   do while not oRs.EOF
       SELECT CASE cint(left(oRs("ID"),1))
           CASE 1
               varColor = "#ff0000"
           CASE 2
               varColor = "#00ff00"
           CASE 3
               varColor = "#000000"
           CASE 4
               varColor = "#999999"
       END SELECT
       response.write "<tr bgcolor='" & varColor & "'><td>" & oRs("ID") & "</td></tr>"
   oRs.moveNext
   loop
%>    
</table>
--
Jesper Stocholm
http://stocholm.dk

Kim Kølerfeldt (04-03-2002)
Kommentar
Fra : Kim Kølerfeldt


Dato : 04-03-02 12:40

Hej Jesper !

Tak for din mail. Jeg prøver at rode lidt med det i dag

/Kim K.


<kim.koelerfeldt@get2net.dk> skrev i en meddelelse
news:9PGf8.27$Iz5.866@news.get2net.dk...
> Hej !
>
> Jeg har en Access-fil med forskellige varer, sorteret efter en kolonne med
> to-cifrede ID-numre. Afhængig af, om ID'et begynder med 1, 2, 3 eller 4
skal
> linierne have hver deres farve....
>
> Hvor skal select-case'en stå i forhold til SQL'en ? ....Er select-casen
> skrevet forkert ? Dette her virker ikke:
>
>
> <%
> strSQL = "SELECT * FROM products ORDER BY ID"
> set oRS= oConn.execute(strSQL)
> %>
>
> <%
> varCategory = oRS("ID")
> Select Case varCategory
> Case Cat1*
> varTextColor = "Red"
> Case Cat2*
> varTextColor = "Blue"
> Case Cat3*
> varTextColor = "Balck"
> Case Cat4*
> varTextColor = "Grey"
> End select
> %>
>
> Fejlmeddelelsen viser, at den vil ikke kendes ved oRS("ID) ??
>
> Hva' æh...........
>
> /Kim K.
>
>



Kim Kølerfeldt (05-03-2002)
Kommentar
Fra : Kim Kølerfeldt


Dato : 05-03-02 17:01

Hej Jesper !

Jeg har skrevet - stort set - som du anbefalede, men Dreamweaver vil ikke
acceptere den response.write.....

<%
do while not oRS.eof
Select Case CInt(left(oRS("ID"),1))
Case 1
varTextColor = "FF0000"
Case 2
varTextColor = "00FF00"
Case 3
varTextColor = "000000"
Case 4
varTextColor = "999999"
End select
Response.Write "<tr TextColor='"&varColor&'"><td>"&oRS("ID")&"</td></tr>"
oRS.move Next
loop
%>

Som du kan se, er det selve skriftfarven, jeg vil ændre på.

Kan du finde fejlen ?

/Kim K.

"Kim Kølerfeldt" <kim.koelerfeldt@get2net.dk> skrev i en meddelelse
news:9PGf8.27$Iz5.866@news.get2net.dk...
> Hej !
>
> Jeg har en Access-fil med forskellige varer, sorteret efter en kolonne med
> to-cifrede ID-numre. Afhængig af, om ID'et begynder med 1, 2, 3 eller 4
skal
> linierne have hver deres farve....
>
> Hvor skal select-case'en stå i forhold til SQL'en ? ....Er select-casen
> skrevet forkert ? Dette her virker ikke:
>
>
> <%
> strSQL = "SELECT * FROM products ORDER BY ID"
> set oRS= oConn.execute(strSQL)
> %>
>
> <%
> varCategory = oRS("ID")
> Select Case varCategory
> Case Cat1*
> varTextColor = "Red"
> Case Cat2*
> varTextColor = "Blue"
> Case Cat3*
> varTextColor = "Balck"
> Case Cat4*
> varTextColor = "Grey"
> End select
> %>
>
> Fejlmeddelelsen viser, at den vil ikke kendes ved oRS("ID) ??
>
> Hva' æh...........
>
> /Kim K.
>
>



Jesper Stocholm (05-03-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 05-03-02 17:03

Kim Kølerfeldt wrote in news:%R5h8.286$Nw2.2528@news.get2net.dk:

> Hej Jesper !
>
> Jeg har skrevet - stort set - som du anbefalede, men Dreamweaver vil
> ikke acceptere den response.write.....
>
> <%
> do while not oRS.eof
> Select Case CInt(left(oRS("ID"),1))
> Case 1
> varTextColor = "FF0000"
> Case 2
> varTextColor = "00FF00"
> Case 3
> varTextColor = "000000"
> Case 4
> varTextColor = "999999"
> End select
> Response.Write "<tr
> TextColor='"&varColor&'"><td>"&oRS("ID")&"</td></tr>" oRS.move Next

det skal være

Response.Write "<tr TextColor='" & varColor & "'><td>"

Læg mærke til, at de sidste "' stod forkert i din kode :)


--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Kim Kølerfeldt (06-03-2002)
Kommentar
Fra : Kim Kølerfeldt


Dato : 06-03-02 12:06

Hej Jesper !

Yes - du havde ret. Det var ikke lige til at se, at der skulle byttes om
"dobbeltping" og "enkeltping".

Koden ser nu således ud:

<%
do while not oRS.eof
Select Case CInt(left(oRS("ID"),1))
Case 1
varTextColor = "FF0000"
Case 2
varTextColor = "00FF00"
Case 3
varTextColor = "000000"
Case 4
varTextColor = "999999"
End select
Response.Write "<tr TextColor='" & varColor & "'><td>"
oRS.moveNext
loop
%>

Selvom syntax'en nu er OK, så bliver der ikke genereret noget fra Access,
når jeg tester ASP'en i dokumentet. Jeg får blot en tom tabel - ikke nogle
linier sorteret efter ID og med 4 forskellige farver. Øh........??? Kan du
se, hvad det skyldes ?

M.v.h. Kim K.





Jesper Stocholm (06-03-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 06-03-02 14:33

"Kim Kølerfeldt" <kim.koelerfeldt@get2net.dk> wrote in
news:sDmh8.38$cB3.1728@news.get2net.dk:

> Hej Jesper !
>
> Yes - du havde ret. Det var ikke lige til at se, at der skulle byttes
> om "dobbeltping" og "enkeltping".
>
> Koden ser nu således ud:
>
><%
> do while not oRS.eof
> Select Case CInt(left(oRS("ID"),1))
> Case 1
> varTextColor = "FF0000"
> Case 2
> varTextColor = "00FF00"
> Case 3
> varTextColor = "000000"
> Case 4
> varTextColor = "999999"
> End select
> Response.Write "<tr TextColor='" & varColor & "'><td>"

du indsætter en forkert (tom) variabel, nemlig varColor. Det skal i
stedet være varTextColor.

Husk også at inkludere et TABLE-tag i start og slut.

> oRS.moveNext
> loop
> %>
>
> Selvom syntax'en nu er OK, så bliver der ikke genereret noget fra
> Access, når jeg tester ASP'en i dokumentet. Jeg får blot en tom tabel
> - ikke nogle linier sorteret efter ID og med 4 forskellige farver.
> Øh........??? Kan du se, hvad det skyldes ?
>

har du prøvet at lave forespørgslen direkte i Access ? Det kunne være, at
resultatet var tomt :)

Hvis du efter din erklæring af strSQL sætter linierne

response.write strSQL
response.end

så vil du få udskrevet din sql-streng. Derefter kan du fyre den af
direkte i din Access-database.

--
Jesper Stocholm
http://stocholm.dk

Kim Kølerfeldt (06-03-2002)
Kommentar
Fra : Kim Kølerfeldt


Dato : 06-03-02 21:17

Hej Jesper !

Altså - jeg er ingen ørn til det her....

Jeg har nu rettet det til, så syntax'en er i orden - ingen generering af
linier. Så har jeg prøvet at skrive:

<%
strSQL = "SELECT * FROM products ORDER BY ID"
set oRS= oConn.execute(strSQL)
response.write strSQL
response.end
%>

før den stump ASP med farveskiftet. Det udskriver blot selve teksten af
SQL'en: SELECT * FROM products ORDER BY ID

Men hvis jeg sletter den stump ASP med farveskiftet så virker
udskriftsgeneratoren ?

Jeg har ikke nogen ideer - har du ?


Happy programming

/Kim K.



Jesper Stocholm (08-03-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 08-03-02 08:58

Kim Kølerfeldt wrote in news:uIuh8.1226$cB3.4842@news.get2net.dk:

> Hej Jesper !
>
> Altså - jeg er ingen ørn til det her....
>
> Jeg har nu rettet det til, så syntax'en er i orden - ingen generering
> af linier.


giver den slet ikke noget output ... giver den hverken

<table>
</table>

eller

<table>
   <tr>
       <td></td>
   </tr>
</table>

?


> <%
> strSQL = "SELECT * FROM products ORDER BY ID"
> set oRS= oConn.execute(strSQL)
> response.write strSQL
> response.end
> %>
>
> før den stump ASP med farveskiftet. Det udskriver blot selve teksten
> af SQL'en: SELECT * FROM products ORDER BY ID
>

giver den et resultat i Access, når du kører den ?

> Men hvis jeg sletter den stump ASP med farveskiftet så virker
> udskriftsgeneratoren ?
>
> Jeg har ikke nogen ideer - har du ?
>

et par stykker ... :)

Prøv at inkludere en ny linie i din SELECT-CASE kode. Det skal være

CASE ELSE
   varTextColor = "#000000"

Så det kommer til at være

SELECT CASE ...
   ...
   CASE 4
   CASE ELSE
       varTextColor = "#0000ff"


Så vil den nemlig udskrive grøne (tror jeg) hvis den slet ikke matcher
noget i din SELECT-CASE

>
> Happy programming
>

tjaeh ... jeg opdager lige en fejl i den kode du har skrevet. Du skriver

response.write "<tr TextColor='" & varColor & "'><td>"

.... men det er jo ikke korrekt. Det skal være

response.write "<tr><td bgcolor='" & varTextColor & "'></td></tr>"

Du kan så udskrive indholdet af dine rækker med

response.write "<tr><td bgcolor='" & varTextColor & "'>" & oRs("ID") & "</td></tr>"



--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Kim Kølerfeldt (06-03-2002)
Kommentar
Fra : Kim Kølerfeldt


Dato : 06-03-02 12:09

Jeg kom lige til at tænke på.....

Gør det nogen forskel, at der er to stumper ASP og ikke en ?

først <% Select * FROM.......%>

....og så efterfølgende den stump vi har skrevet på, som skulle lave 4
forskellige skriftfarver ?

/Kim K.



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste