/ 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
Ubound problem
Fra : Henrik Nygaard


Dato : 02-06-04 14:26

JensGyldenkerneClausen hjalp mig med mit Datediff problem for en
par indlæg siden. Han gav mig følgende kode for at løse de
forkerte datoer som kom ind i databasen. Tak for det!

' Hent startdato:
Dim stdato
stdato = Request.Form("startdato")

' Find de enkelte dele
Dim stdatoArray
stdatoArray = Split(stdato, "-")

If Ubound(stdatoArray) = 2 Then
' Tre elementer i datoen, fortsæt behandlingen
Dag = stdatoArray(0)
Maaned = stdatoArray(1)
Aar = stdatoArray(2)
Else
response.write "Forkert dato - udskriv fejlmeddelelse "
End If

Den post jeg laver i min form, kan også have en slutdato. Det er
ikke sikkert, derfor tester jeg på om den er tom inden jeg
arbejder videre med den. Koden for slutdato følger her:

' Hent slutdato:
If Request.Form("slutdato") = "" THEN
ELSE
Dim sldato
sldato = Request.Form("slutdato")

' Find de enkelte dele
Dim sldatoArray
sldatoArray = Split(sldato, "-")

If Ubound(sldatoArray) = 2 Then
' Tre elementer i datoen, fortsæt behandlingen
Dagl = sldatoArray(0)
Maanedl = sldatoArray(1)
Aarl = sldatoArray(2)
Else
response.write "Forkert dato - udskriv fejlmeddelelse "
End If
END IF

Jeg har ændret alle stdato til sldato og request.form til at
hente slutdatoen. Der kommer ingen slutdatoer ind. Min
response.write strSQL viser ingen slutdato

Linie 84 er lavet for at se hvad min ubound laver af resultat.
Fjerner jeg linie 84 er der ikke nogen slutdato i min strSQL
linie???

Linie 84:
response.write "slutdato: " & sldatoarray


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Mikoangelo (02-06-2004)
Kommentar
Fra : Mikoangelo


Dato : 02-06-04 14:40

[On on, 02 jun 2004 13:26:26 GMT, "Henrik Nygaard" wrote (link:
<news:40bdd582$0$3057$14726298@news.sunsite.dk>)]:
[deletia]
> ' Hent slutdato:
> If Request.Form("slutdato") = "" THEN
Ubound(array) returnerer en integer indeholdende et nummer, som
repræsenterer antallet af elementer i arrayet, startende med 0, ikke en
streng.
Jeg er ikke 100%, men prøv
If Request.Form("slutdato") = 0 THEN

> ELSE
> Dim sldato
> sldato = Request.Form("slutdato")
[deletia kode]


--
Mikoangelo - webmaster of
http://harrypotter.lk-data.net
Scrambled email (ROT-13):
uneelcbggre [on] yx [hyphen] qngn [spot] qx

Henrik Nygaard (02-06-2004)
Kommentar
Fra : Henrik Nygaard


Dato : 02-06-04 14:53

> Jeg er ikke 100%, men prøv
> If Request.Form("slutdato") = 0 THEN

Den viser stadig "type mismatch"

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (02-06-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-06-04 14:58

Mikoangelo skrev:

> Ubound(array) returnerer en integer indeholdende et nummer,
> som repræsenterer antallet af elementer i arrayet, startende
> med 0, ikke en streng.

Ja.

> Jeg er ikke 100%, men prøv
> If Request.Form("slutdato") = 0 THEN

Nej - Request.Form("slutdato") er en variant (som opfattes som en
tekstværdi), ikke et tal.

Der er jo ikke brugt Ubound i if-sætningen.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Mikoangelo (02-06-2004)
Kommentar
Fra : Mikoangelo


Dato : 02-06-04 15:14

[On on, 02 jun 2004 13:57:43 GMT, "Jens Gyldenkærne Clausen" wrote
(link: <news:Xns94FCA25FBED11jcdmfdk@gyrosmod.cybercity.dk>)]:

> Mikoangelo skrev:
>
>> Ubound(array) returnerer en integer indeholdende et nummer,
>> som repræsenterer antallet af elementer i arrayet, startende
>> med 0, ikke en streng.
>
> Ja.
>
>> Jeg er ikke 100%, men prøv
>> If Request.Form("slutdato") = 0 THEN
>
> Nej - Request.Form("slutdato") er en variant (som opfattes som en
> tekstværdi), ikke et tal.
>
> Der er jo ikke brugt Ubound i if-sætningen.

DOH!!! Jeg havde åbenbart ikke kigget ordentligt i koden.
Jeg holder mig væk fra nu af...
:-$


--
Mikoangelo - webmaster of
http://harrypotter.lk-data.net
Scrambled email (ROT-13):
uneelcbggre [on] yx [hyphen] qngn [spot] qx

Jens Gyldenkærne Cla~ (02-06-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-06-04 14:52

Henrik Nygaard skrev:

> Den post jeg laver i min form, kan også have en slutdato. Det er
> ikke sikkert, derfor tester jeg på om den er tom inden jeg
> arbejder videre med den. Koden for slutdato følger her:

Din kode ser umiddelbart fin ud - men du har ikke vist hvordan du
bruger (indsætter) slutdatoen. Giv evt. et link til en tekstudgave
af din asp-fil.


> ' Hent slutdato:
> If Request.Form("slutdato") = "" THEN

Prøv her at lave response.write "Slutdato tom" eller lignende for
at tjekke hvornår du ryger i sand-delen af if-sætningen.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Henrik Nygaard (03-06-2004)
Kommentar
Fra : Henrik Nygaard


Dato : 03-06-04 08:03

> > ' Hent slutdato:
> > If Request.Form("slutdato") = "" THEN
>
> Prøv her at lave response.write "Slutdato tom" eller lignende for
> at tjekke hvornår du ryger i sand-delen af if-sætningen.

jeg har lavet kode om til

If Request.Form("slutdato") = "" THEN
response.write "slutdato er tom"
ELSE
Dim sldato
sldato = Request.Form("slutdato")
response.write "sldato= " & sldato

Hvis slutdato er tom, skriver en fint "Slutdato er tom" og hvis der
er en dato skriven den fint datoen. Så det virker som om det er
sldatoarray som går galt.

En response.write Aar1 giver heller ingen resultat.

Hvis jeg laver en response.write på min sldatoarray laver den en type
mismatch. Man kan åbenbart ikke lave en response.write på et array.

Det er vildt underligt.

PFT
Henrik

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (03-06-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 03-06-04 10:24

Henrik Nygaard skrev:

> Hvis slutdato er tom, skriver en fint "Slutdato er tom" og
> hvis der er en dato skriven den fint datoen. Så det virker som
> om det er sldatoarray som går galt.

Ja. Men du har stadig ikke vist hvordan du bruger sldatoarray.

Et par hints:

Bruger du option explicit? (hvis ikke, kan det skjule fejl på grund
af fejlskrivning af variabelnavne)

Prøv at udskrive indholdet af sldatoarray på denne måde:

Dim element, count
count = 0
For Each element In sldatoarray
   count = count + 1
   Response.write Cstr(count) & ": " & element & "<br>"
Next


> Hvis jeg laver en response.write på min sldatoarray laver den
> en type mismatch. Man kan åbenbart ikke lave en response.write
> på et array.

Nej - du skal udskrive elementerne i arrayet, jf. ovenstående
eksempel.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Henrik Nygaard (03-06-2004)
Kommentar
Fra : Henrik Nygaard


Dato : 03-06-04 12:32

> Ja. Men du har stadig ikke vist hvordan du bruger sldatoarray.
>
Her kommer koden for startdato og slutdato. Startdato virker og
slutdato virker ikke.

' Hent startdato:
Dim stdato
stdato = Request.Form("startdato")

' Find de enkelte dele
Dim stdatoArray
stdatoArray = Split(stdato, "-")

If Ubound(stdatoArray) = 2 Then
' Tre elementer i datoen, fortsæt behandlingen
Dag = stdatoArray(0)
Maaned = stdatoArray(1)
Aar = stdatoArray(2)
Else
response.write "Forkert dato - udskriv fejlmeddelelse "
End If

' Hent slutdato:
If Request.Form("slutdato") = "" THEN
response.write "slutdato er tom"
ELSE
Dim sldato
sldato = Request.Form("slutdato")
response.write "sldato= " & sldato

' Find de enkelte dele
Dim sldatoArray
sldatoArray = Split(sldato, "-")
If Ubound(sldatoArray) = 2 Then
' Tre elementer i datoen, fortsæt behandlingen
Dagl = sldatoArray(0)
Maanedl = sldatoArray(1)
Aarl = sldatoArray(2)
response.write "Aar1=" & Aar1
Else
response.write "Forkert dato - udskriv fejlmeddelelse "
End If
END IF

Længere ned og inden min Conn.execute har jeg følgende:

Response.write strSQL
Response.write "Datoværdierstart: År: " & Cstr(aar) & ", Måned: " &
Cstr(maaned) & ", Dag: " & Cstr(Dag)
Response.write "Datoværdierslut: År1: " & Cstr(aar1) & ", Måned1: " &
Cstr(maaned1) & ", Dag1: " & Cstr(Dag1)
response.end

Den viser fint min strSQL og viser også datoer for start datoen men
den er sørgelig tom for slutdatoen.

Håber jeg har fået alle data med denne gang.....

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (03-06-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 03-06-04 12:48

Henrik Nygaard skrev:

> Dagl = sldatoArray(0)
> Maanedl = sldatoArray(1)
> Aarl = sldatoArray(2)
> response.write "Aar1=" & Aar1

På min skærm er det tydeligt hvad der er problemet her, men det er
ikke sikkert det er så tydeligt hos dig (det afhænger af den
skrifttype du læser indlægget i). I variabeltildelingerne (de tre
første linjer i citatet herover) har du tilføjet bogstavet l (L)
til de oprindelige navne. Men når du senere bruger de variable er
det cifferet 1 (ét) der er brugt. Dagl og Dag1 er ikke det samme.

Jeg vil varmt anbefale dig at læse siden her:
   <http://asp-faq.dk/article/?id=9>

Det er netop denne type problemer som Option Explicit kan afhjælpe.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Henrik Nygaard (03-06-2004)
Kommentar
Fra : Henrik Nygaard


Dato : 03-06-04 13:00

> På min skærm er det tydeligt hvad der er problemet her, men det er
> ikke sikkert det er så tydeligt hos dig (det afhænger af den
> skrifttype du læser indlægget i). I variabeltildelingerne (de tre
> første linjer i citatet herover) har du tilføjet bogstavet l (L)
> til de oprindelige navne. Men når du senere bruger de variable er
> det cifferet 1 (ét) der er brugt. Dagl og Dag1 er ikke det samme.

Jeg fjols...

> Jeg vil varmt anbefale dig at læse siden her:
>    <http://asp-faq.dk/article/?id=9>

Med denne situation i minde kan jeg tydeligt se ideen i artiklen.

Mange tak for hjælpen.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste