webForumDet fria alternativet

Type mismatch.

ASP

10 svar · 248 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Frågan#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
Medlem sedan maj 2002560 inlägg
#2
CDate(RecSet("alder"))=CDate(request.form("ar") &"-"& request.form("manad") &"-"& request.form("dag"))
Medlem 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?

Medlem 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.

Medlem sedan maj 2002560 inlägg
#5
Type mismatch: 'CDate'

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

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"))
Medlem 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... :/

Medlem 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"))
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 :)

Medlem 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!

Medlem 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å :)

375 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
240 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)