Avatar billede idiotbarn Nybegynder
08. oktober 2004 - 18:22 Der er 17 kommentarer og
1 løsning

type mismatch

Jeg har en side hvor jeg indsætter bla:
Dato=FormatDateTime(Now(), vbLongDate)
índ i en sql database hvor feltet Dato har formatet TEXT (ingen atributter)
Længere nede har jeg så:
If left(Dato,2)<10 and left(Dato,2)>=4 then...
Men jeg får en:

Microsoft VBScript runtime error '800a000d'
Type mismatch: '[string: "fr"]'
/guestbook/Guestbook.asp, line 225

linie 225 er If sætningen
Det virkede fint da jeg brugte Access, og jeg har prøvet at bruge Cstr inden jeg sætter det ind i databasen og Cint omkring left(), men kan ikke få det til at virke?
Avatar billede eagleeye Praktikant
08. oktober 2004 - 18:30 #1
Og du gør ikke noget med variablen dato inde if sætningen?
Avatar billede idiotbarn Nybegynder
08. oktober 2004 - 18:37 #2
Har kun et par funktioner og en Lcase:

  <%
function DatoLir(Dat)
LDat=len(Dat)
Dag=Left(Dat,2)
Dag=replace(Dag,".","")
LDay=Len(Dag)
If LDay="1" then
BetydendeCiffer=Dag
StartDag="2"
Else
BetydendeCiffer=Mid(Dag,2,2)
StartDag="3"
End if
Select Case BetydendeCiffer
Case 1
DatoLir=left(Dat,2) & "st" & Mid(Dat,StartDag,LDat)
Case 2
DatoLir=left(Dat,2) & "nd" & Mid(Dat,StartDag,LDat)
Case 3
DatoLir=left(Dat,2) & "rd" & Mid(Dat,StartDag,LDat)
Case Else
DatoLir=left(Dat,2) & "th" & Mid(Dat,StartDag,LDat)
End Select
end function

function Maned(datoer)
ManederDK="januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december"
ManederUK="January,February,March,April,May,June,July,August,September,October,November,December"
ArrManederDK=Split(ManederDK,",")
ArrManederUK=Split(ManederUK,",")
For t = 0 to 11
If Instr(datoer,ArrManederDK(t))>0 then
Maned=replace(datoer,ArrManederDK(t),ArrManederUK(t))
end if
next
end function

...

Set rs=Conn.Execute("Select * from GB order by Id DESC")
      If not rs.eof then
      i=0
      do while not rs.eof and i<15
      Dato = rs("Dato")
   
    Dato=LCase(Dato)
If left(Dato,2)<10 and left(Dato,2)>=4 then 'Mindre end 10 og større end 4
Dato2=Left(Dato,2) & "th" & Mid(Dato,2,len(Dato))
elseif left(Dato,2)>=10 and left(Dato,2)<=20 then
Dato2=Left(Dato,2) & "th" & Mid(Dato,3,len(Dato))
else
Dato2=DatoLir(Dato)
end if
Avatar billede eagleeye Praktikant
08. oktober 2004 - 18:59 #3
hmm, og datoen kolonnen indeholder kun tal ikke bogstaver?
Avatar billede idiotbarn Nybegynder
08. oktober 2004 - 19:00 #4
jo...fx: 1. oktober 2004
Kan man ikke det?
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:06 #5
Jo det skulle man kunne. Jeg forstår ikke helt fejlen kommer i if sætningen, da left jo bare tager 2 katakter fra strengen.
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:13 #6
Arh left(dato,2) giver "1." hvis der står "1.oktober 2004" og hvis den tolker "." som tekst vil den fejl komme.
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:14 #7
Når den skriver '[string: "fr"]'  tyder det på dato kolonne indeholder "fr" som de to første bogstaver i en post, prøv at tjekke om det passer?
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:17 #8
Det ikke sådan der står "fredag 1. oktober 2004" i din database ?
Avatar billede idiotbarn Nybegynder
08. oktober 2004 - 19:21 #9
Ah...Da jeg testede den, skrev den ikke dage med...men det gør den åbentbart her...I dag skriver den fr, 8... godt så:) Ved du om den kun vil skrive dage som:
mo,tu,we,th,fr,sa,su eller kan der komme 3 bogstaver i dagen?
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:30 #10
Ja forkortelsen på danske giver 2 karakter. Hvis du vil havde 3 kan du bruge left:

left(weekdayname(weekday(date)),3)

Eller fjerne de 3 sidste "dag":
replace(weekdayname(weekday(date-1)),"dag","")
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:31 #11
hmm -1 efter date skulle ikke hvade være med :)
Avatar billede idiotbarn Nybegynder
08. oktober 2004 - 19:32 #12
det er på en svensk(?) server det skal ligge, men mon ikke det bare er englsk, og så er det stadig 2 tegn hele vejen ik?
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:33 #13
Engelsk er 3 kataker for kort dagnavn.
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:36 #14
På svensk er det 2 hvis jeg sætter den til Svensk dato format: må ti on to fr fr lö sö
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:36 #15
hov fr er der to gange :)
Avatar billede idiotbarn Nybegynder
08. oktober 2004 - 19:36 #16
hmm...der er kun to, men ok, det er vel enten to eller tre bogstaver det skrives med...det bliver vel ikkeblandet
Avatar billede idiotbarn Nybegynder
08. oktober 2004 - 19:37 #17
ok...takker...vil du lige ha lidt point
Avatar billede eagleeye Praktikant
08. oktober 2004 - 19:38 #18
Ok ;)
Ja dansk og svensk er altid 2 bogstaver for kort dag navn.
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