webForumDet fria alternativet

Type mismatch.

10 svar · 247 visningar · startad av Thompa__85

Thompa__85Medlem sedan aug. 2002600 inlägg
#1

Hejsan!
Varför vill inte denna kod fungera?

RecSet("alder")=request.form("ar") + request.form("manad") + request.form("dag")

Felmeddelande:

Provider error '80020005' 

Type mismatch. 

/2/installningar_medlem.asp, line 38
LR^evil.sidMedlem sedan maj 2002560 inlägg
#2
CDate(RecSet("alder"))=CDate(request.form("ar") &"-"& request.form("manad") &"-"& request.form("dag"))
Thompa__85Medlem sedan aug. 2002600 inlägg
#3

LR^evil.sid skrev:

CDate(RecSet("alder"))=CDate(request.form("ar") &"-"& request.form("manad") &"-"& request.form("dag"))

Hmm, den säger såhär:

Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'CDate' 

/2/installningar_medlem.asp, line 38

Varför?

SebbeMedlem sedan jan. 20032 285 inlägg
#4
CInt(RecSet("alder")) = CInt(request.form("ar")) + CInt(request.form("manad")) + CInt(request.form("dag"))

Antar jag i alla fall att du vill ha.

LR^evil.sidMedlem sedan maj 2002560 inlägg
#5
Type mismatch: 'CDate'

då är inte recset("alder") av datumtyp?

Engine^Medlem sedan dec. 20003 887 inlägg
#6

Vill du lagra det som ett datum (yyyy-mm-dd), så kan du göra såhär

RecSet("alder") = DateSerial(Request.Form("ar"), Request.Form("manad"), Request.Form("dag"))
Thompa__85Medlem sedan aug. 2002600 inlägg
#7

Engine^ skrev:

Vill du lagra det som ett datum (yyyy-mm-dd), så kan du göra såhär

RecSet("alder") = DateSerial(Request.Form("ar"), Request.Form("manad"), Request.Form("dag"))

Okej...
men så här säger den då..
Microsoft VBScript runtime error '800a000d'

Type mismatch: '[string: "Maj"]'

/2/installningar_medlem.asp, line 38

Och jo, RecSet("alder") är Datum/tid format... :/

SebbeMedlem sedan jan. 20032 285 inlägg
#8

Jasså, du har gjort det så. Då får du nog göra en funktion av det:

Function ChangeNameToNumber(strName)
  Select Case LCase(Trim(strName))
    Case "januari" : intNum = 1
    Case "februari" : intNum = 2
    Case "mars" : intNum = 3
    Case "april" : intNum = 4
    Case "maj" : intNum = 5
    Case "juni" : intNum = 6
    Case "juli" : intNum = 7
    Case "augusti" : intNum = 8
    Case "september" : intNum = 9
    Case "oktober" : intNum = 10
    Case "november" : intNum = 11
    Case "december" : intNum = 12
  End Select

  ChangeNameToNumber = intNum
End Function

RecSet("alder") = DateSerial(Request.Form("ar"), ChangeNameToNumber(Request.Form("manad")), Request.Form("dag"))
Engine^Medlem sedan dec. 20003 887 inlägg
#9

Type mismatch: '[string: "Maj"]'

Det är ju inte på formen mm... men det går ju förstås att fula sig runt

Dim objMonths

Set objMonths = Server.CreateObject("Scripting.Dictionary")
objMonths.Add "Januari", 1
objMonths.Add "Febuari", 2
.
.
.
objMonths.Add "December", 12

RecSet("alder") = DateSerial(Request.Form("ar"), objMonths(Request.Form("manad")), Request.Form("dag"))

red.
Eller så gör man som Sebbe föreslår och skippar att skapa ett dict-objekt... även om det kan vara kul :OO :bire

Man kanske ska använda sig utav Förhandsgranska lite oftare :)

Thompa__85Medlem sedan aug. 2002600 inlägg
#10

Sebbe skrev:

Jasså, du har gjort det så. Då får du nog göra en funktion av det:

Function ChangeNameToNumber(strName)
  Select Case LCase(Trim(strName))
    Case "januari" : intNum = 1
    Case "februari" : intNum = 2
    Case "mars" : intNum = 3
    Case "april" : intNum = 4
    Case "maj" : intNum = 5
    Case "juni" : intNum = 6
    Case "juli" : intNum = 7
    Case "augusti" : intNum = 8
    Case "september" : intNum = 9
    Case "oktober" : intNum = 10
    Case "november" : intNum = 11
    Case "december" : intNum = 12
  End Select

  ChangeNameToNumber = intNum
End Function


RecSet("alder") = DateSerial(Request.Form("ar"), ChangeNameToNumber(Request.Form("manad")), Request.Form("dag"))

Tack det löste mitt problem! tack!

Thompa__85Medlem sedan aug. 2002600 inlägg
#11

Engine^ skrev:

Type mismatch: '[string: "Maj"]'

Det är ju inte på formen mm... men det går ju förstås att fula sig runt

Dim objMonths

Set objMonths = Server.CreateObject("Scripting.Dictionary")
objMonths.Add "Januari", 1
objMonths.Add "Febuari", 2
.
.
.
objMonths.Add "December", 12

RecSet("alder") = DateSerial(Request.Form("ar"), objMonths(Request.Form("manad")), Request.Form("dag"))

red.
Eller så gör man som Sebbe föreslår och skippar att skapa ett dict-objekt... även om det kan vara kul :OO :bire

Man kanske ska använda sig utav Förhandsgranska lite oftare :)

Hehe okej, tack ändå :)

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)