/ 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
Fra : Is


Dato : 16-08-03 22:30

Hvor kan jeg se noget om select case ???

Jag har lavet nogle stykker, den ene starter sådan

Select Case mymhfoedt (dette er linje 152)
Case 01
mymmhfoedt = "Jannuar"
Case 02... osv

Og de virker lokalt. men når jeg tester på nettet får jeg fejl:
---
Microsoft VBScript runtime error '800a000d'

Type mismatch: '[string: "/1"]'

/testbeta/opdater.asp, line 152

---

mymhfoedt får indhold fra et datofelt i en access databasse og via :

mymhfoedt = Mid(myhundfoedt, 4, 2)


--
Venlig hilsen
Erik Isager




 
 
Jørgen Müller (16-08-2003)
Kommentar
Fra : Jørgen Müller


Dato : 16-08-03 22:50

Is skrev:
>Microsoft VBScript runtime error '800a000d'

>Type mismatch: '[string: "/1"]'

>/testbeta/opdater.asp, line 152

Tyder på serveren kører med en anden dato formatering end din egen computer.

Prøv at skrive mymhfoedt ud med
Response.Write mymfoedt
Response.End

Hvis måneden er under 10 bliver der kun vist et tal altså ikke 01 og 02 men
1 og 2 og derfor vil
mymhfoedt = Mid(myhundfoedt, 4, 2)
give en fejl da du trækker 2 tal ud.
Du kan bruge InStr til at måle længden hen til første adskillelse ( - eller
/) og så bruge tallene i din Mid funktion.
InStr([start, ]string1, string2[, compare])

tal1 = InStr(1,mymfoedt,"-")
tal2 = InStr(tal1+1,mymfoedt,"-")

Mid(myhundfoedt, tal1, tal2)
PS er ikke afprøvet.


Det nemmeste er nok bare i din SELCECT CASE at skrive Case 1

Har selv brugt det i forbindelse med en database hvor jeg har trukket
måneden ud i et specielt felt og herefter kører jeg det gennem en Select
Case:
SELECT CASE rs(0)
Case 1
Response.Write "<B>Januar</B>" & "</TD><TD>" & rs(1) & "<BR>"
Case 2
Response.Write "<B>Februar</B>" & " </TD><TD>" & rs(1) & "<BR>"
Case 3
Response.Write "<B>Marts</B>" & "</TD><TD> " & rs(1) & "<BR>"
Case 4
Response.Write "<B>April</B>" & " </TD><TD>" & rs(1) & "<BR>"


--
Med Venlig Hilsen
Jørgen Müller



Is (17-08-2003)
Kommentar
Fra : Is


Dato : 17-08-03 21:41


"Jørgen Müller" <j.muller@mail.tele.dk> skrev i en meddelelse
news:bhm8uj$p4q$1@sunsite.dk...
> Is skrev:
> >Microsoft VBScript runtime error '800a000d'
>
> >Type mismatch: '[string: "/1"]'
>
> >/testbeta/opdater.asp, line 152
>
> Tyder på serveren kører med en anden dato formatering end din egen
computer.
>
> Prøv at skrive mymhfoedt ud med
> Response.Write mymfoedt
> Response.End
>

Ja, det tog sin tid inden jeg fik lov at se hvordan databasen sender dato
format, men det lykkedes endeligt, det ser sådan ud :

2/2/1996

Jeg kunne vel ikke få dig til at forklare lidt mere om "InStr" ?? hvad
kommer der ud af at bruge den ??


--
Venlig hilsen
Erik Isager



Torben Brandt (17-08-2003)
Kommentar
Fra : Torben Brandt


Dato : 17-08-03 23:25

Is wrote:
>>> Select Case mymhfoedt (dette er linje 152)
>>> Case 01
>>> mymmhfoedt = "Jannuar"
>>> Case 02... osv
>
> Ja, det tog sin tid inden jeg fik lov at se hvordan databasen sender dato
> format, men det lykkedes endeligt, det ser sådan ud :
>
> 2/2/1996

Hvis rs("felt") har typen dato og du skal bruge måneden, så skal du bare
bruge funktionen Month, der giver månedens nummer (1,2,..,12):

maaned = Month(rs("mymhfoedt"))
Select Case maaned ' NB! maaned er et tal, ikke en streng
Case 1
mymmhfoedt = "Januar"
Case 2
mymmhfoedt = "Februar"
...
End Select

PS Forsøg aldrig(!) at bruge Mid, Left, Right, InStr på variable, der
har typen dato. Brug i stedet Day, Month, Year, DatePart og dan dit eget
format, hvis du har brug for at skrive det ud som en streng. Eks:
Response.Write Day(dato) & "/" & Month(dato) & "-" & Year(dato)
Her bestemmer man helt selv og serveren skal ikke gætte, hvad man prøver
på...

/Torben


Jørgen Müller (18-08-2003)
Kommentar
Fra : Jørgen Müller


Dato : 18-08-03 08:44

Is skrev:
>Ja, det tog sin tid inden jeg fik lov at se hvordan databasen sender dato
>format, men det lykkedes endeligt, det ser sådan ud :

>2/2/1996

Er du sikker på det er dmå og ikke mdå?

>Jeg kunne vel ikke få dig til at forklare lidt mere om "InStr" ?? hvad
>kommer der ud af at bruge den ??
Se først Torbens svar, dog en lille tilføjelse - hvis du bruger
FormatDateTime kommer der en streng ud af resultatet og på den kan du så
bruge InStr, der bruger en startværdi, tekststreng, og noget der skal
findes, retunerer et tal (antal pladser hen til det søgte.

<%
tal = InStr(1, "Find noget i denne streng", " ")
Response.Write tal
%>
Her vil tal indeholde 5, antal anslag hen til det første mellemrum
Hvis du så næste gang skriver
tal1 = InStr(tal +1, "Find noget i denne streng", "i")
vil tal +1 give 6 og InStr vil starte sin søgning ved "n"oget og returnere
tallet 12, på den måde kan du overføre nogle værdier du ikke kender på
forhånd til f.eks. mid

Læg dette link ind under foretrukne, for den kan ikke undværes i forbindelse
med asp

http://www.html.dk/dokumentation/vbscript/html-vss/vbsTOC.htm

--
Med Venlig Hilsen
Jørgen Müller



Jørn Andersen (18-08-2003)
Kommentar
Fra : Jørn Andersen


Dato : 18-08-03 19:54

On Mon, 18 Aug 2003 09:44:13 +0200, "Jørgen Müller"
<j.muller@mail.tele.dk> wrote:

>Læg dette link ind under foretrukne, for den kan ikke undværes i forbindelse
>med asp
>
>http://www.html.dk/dokumentation/vbscript/html-vss/vbsTOC.htm

Eller download VBScript-dokumentationen i Windows HelpFile format
(.chm) og installér den lokalt:
<url:
http://www.msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/728/msdncompositedoc.xml&frame=true>
- eller direkte:
<url:
http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe>

Good luck!

--
Jørn Andersen,
Brønshøj

Is (19-08-2003)
Kommentar
Fra : Is


Dato : 19-08-03 22:03


"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:n282kvghgqmgelgql1cnk41590glshuiij@4ax.com...
> On Mon, 18 Aug 2003 09:44:13 +0200, "Jørgen Müller"
> <j.muller@mail.tele.dk> wrote:
>
> >Læg dette link ind under foretrukne, for den kan ikke undværes i
forbindelse
> >med asp
> >
> >http://www.html.dk/dokumentation/vbscript/html-vss/vbsTOC.htm
>
> Eller download VBScript-dokumentationen i Windows HelpFile format
> (.chm) og installér den lokalt:
> <url:
>
http://www.msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.as
p?url=/msdn-files/027/001/728/msdncompositedoc.xml&frame=true>
> - eller direkte:
> <url:
>
http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-
US/scrdoc56en.exe>
>
> Good luck!
---
Joo tak !

Den her jeg hentet fordi jeg også tidligere har fået den anbefalet, den
siger mig også noget, men mit engelsk er ikke så godt, og hvis man ikke helt
er klar over hvad man skal lede efter, er det rart med alle de gode svar i
NG der kan hjælpe mig videre

Tak for det !
Min løsning er nu sådan:
---
Dim myhundfoedt, mydhundfoedt, mymhundfoedt, mymmhfoedt, myyhundfoedt
'opdeler hund foedt til value hundfoedt select
myhundfoedt = medlemsliste("hundfoedt")
if myhundfoedt <> "" Then
mydhfoedt = Day(myhundfoedt)
mymhfoedt = Month(myhundfoedt)
myyhfoedt = Right(myhundfoedt, 4)



Select Case mymhfoedt
Case 1
mymmhfoedt = "Jannuar"
Case 2
mymmhfoedt = "Februar"
Case 3
mymmhfoedt = "Marts"
---

senere kan jeg jo lige så godt lave år om også !!

Men det har så også medført at jeg har lavet formatet om på selve listen fra
at være
2/8/2002

til

02-08-2003 det synes jeg er pænere


PS jeg har ligget lidt stille pga besøg af "Blaster"

--
Venlig hilsen
Erik Isager



Jørn Andersen (17-08-2003)
Kommentar
Fra : Jørn Andersen


Dato : 17-08-03 04:43

On Sat, 16 Aug 2003 23:29:48 +0200, "Is"
<detteerminnewsgruppemailadresse1@get2net.dk> wrote:

>Select Case mymhfoedt (dette er linje 152)
> Case 01
> mymmhfoedt = "Jannuar"
> Case 02... osv
>
>Og de virker lokalt. men når jeg tester på nettet får jeg fejl:
> ---
>Microsoft VBScript runtime error '800a000d'
>
>Type mismatch: '[string: "/1"]'
>
>/testbeta/opdater.asp, line 152
>
>---
>
>mymhfoedt får indhold fra et datofelt i en access databasse og via :
>
>mymhfoedt = Mid(myhundfoedt, 4, 2)

Jørgen Møller har givet noget af forklaringen på, hvorfor det ikke
virker.
Mere grundlæggende, så er
Case 02
jo ikke en streng - hvis det var en streng, skulle den hedde:
Case "02"

Jeg ville i stedet trække månedens nummer ud med:
mymhfoedt = Month(myhundfoedt)
- eller evt. trække den ud direkte i Sql'en - afhængigt af hvilken db
du har kunne det se således ud:
SELECT ... Month(myhundfoedt) AS mymhfoedt ...

Select Case'en skulle så hedde:
Case 1
Case 2
....
Case 12


Good luck!

--
Jørn Andersen,
Brønshøj

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

Månedens bedste
Årets bedste
Sidste års bedste