Avatar billede jens_k Nybegynder
02. juni 2002 - 01:16 Der er 8 kommentarer og
1 løsning

Select Kommabaseret

Hejsa

Jeg har en kolonne i min database som hedder Tekst..

Der er f.eks 3 poster som ser således ud :

AW782JK, EURO
MDJ23M, DKR
8725BNM, USD

Jeg har så en side hvor jeg kun er interesseret i at trække de ting ud som står efter komma´et..

Hvordan gør jeg det ?

Jens K
Avatar billede tmceu Praktikant
02. juni 2002 - 01:25 #1
Du kan gøre det i ASP, ved at anvende flg. metode:

arrTemp = Split(objRS("Tekst"), ",")
Response.Write Trim(arrTemp(1))

Dette splitter først dit felt i et array og trimmer evt. blanke efter kommaet væk.
Avatar billede jens_k Nybegynder
02. juni 2002 - 02:33 #2
Jeg får følgende fejl..

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 1]'

/Kunder/B2BNy/Produkter/test.asp, line 20


Linie 20 : Response.Write Trim(arrTemp(1))

''''' MIT ASP SCRIPT ''''''

<%
Set RS2 = Server.CreateObject("ADODB.RecordSet")
SQL2 = "SELECT * FROM Produkter"
RS2.Open SQL2, strDB

arrTemp = Split(RS2("45"), ",")
Response.Write Trim(arrTemp(1))
%>

Min Kolonne hedder 45.. Ikke Tekst som jeg skrev før !
Avatar billede jens_k Nybegynder
02. juni 2002 - 02:34 #3
Der hvor du skriver arrTemp(1)

Hvad angiver tallet værdien for ?
Avatar billede tmceu Praktikant
02. juni 2002 - 02:45 #4
Split funktionen deler en given streng op og smider det i et en-dimensionelt array. Arrays starter altid ved 0, så 1 er 2. element, altså efter kommaet- Din fejl betyder, at du har en post i databasen uden komme og derfor er der højest ét element (0).

Jeg antog at dit feltindhold var konsekvent. Men der er muligheder for at løse den:

intPos = InStr(StrReverse(objRS("Tekst")), ",")

If intPos > 0 Then
response.write Right(objRS("Tekst"), (intPos-1))
Else
response.write "der var ikke noget komma"
End If

Denne kontroller om der er et komma først.
Avatar billede tmceu Praktikant
02. juni 2002 - 02:47 #5
Du skal nok lige ændre den til dette, da den ellers vil fejle hvis kommaet står i første position, eks. ",noget"

intPos = InStr(StrReverse(objRS("Tekst")), ",")

If intPos > 1 Then
response.write Right(objRS("Tekst"), (intPos-1))
Else
response.write "der var ikke noget komma"
End If
Avatar billede jens_k Nybegynder
02. juni 2002 - 03:07 #6
Ja.. Så er der lige et sidste problem..

Hvis der slet ikke står noget i Posten.. Så kommer der en fejl igen...

Hvordan løser jeg det ?
Avatar billede tmceu Praktikant
02. juni 2002 - 03:10 #7
Så smider vi bare endnu en If på :-)

If objRS("Tekst") <> "" Then
    intPos = InStr(StrReverse(objRS("Tekst")), ",")

    If intPos > 1 Then
        response.write Right(objRS("Tekst"), (intPos-1))
    Else
        response.write "der var ikke noget komma"
    End If
End If
Avatar billede jens_k Nybegynder
02. juni 2002 - 03:16 #8
Nu virker det..

Mange tak for det :)
Avatar billede tmceu Praktikant
02. juni 2002 - 03:19 #9
Det var så lidt :-)
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