17. november 2003 - 14:14
Der er
10 kommentarer og 1 løsning
Forhindre fejl ved ikke numerisk felt
Jeg har en database hvor et af felterne hedder 'pris' Dette felt indeholder i 99% af tilfældene en numerisk værdi, men kan også indeholde bogstaver. Jeg henter værdien fra dette felt med bpris=rs("pris") hvilket jo giver en fejl hvis feltet ikke er numerisk. Hvordan undgår jeg fejl og samtidig sætter bpris til en fast tekst som feks "ingen pris online"
Annonceindlæg fra Cognizant
Agentic AI kræver mere end teknologi
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
17. november 2003 - 15:37
#1
If isnummeric(rs("pris")) Then bpris = rs("pris") Else bpris = "ingen pris online" End If
17. november 2003 - 15:59
#2
Det giver en fejl : Microsoft VBScript runtime error '800a000d' Type mismatch: 'isnummeric'
17. november 2003 - 16:03
#3
Her er den del af scriptet: strSQL = "SELECT * FROM ibmthinkpad WHERE" strSQL = strSQL & " (partnummer LIKE '" & strKeyword &"' OR beskrivelse LIKE '" & strKeyword & "')" Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=d:\websider\global\comgrosinfo.dk\comgrosinfo.dk\db\ibm.mdb" Conn.Open DSN Conn.Execute(strSQL) Set rs = Conn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then If isnummeric(rs("pris")) Then bpris = rs("pris") Else bpris = "ingen pris online" End If bruttopris=rs("pris") bruttopris=bruttopris*7.5 bruttopris=bruttopris + 200 bt=bruttopris * 10 / 100 bruttopris=bruttopris+bt bruttopris=bruttopris / 0.85 usgpris=bruttopris / 0.92 end if
17. november 2003 - 16:07
#4
hov - der er selvfølgelig kun ét m i numeric... If isnumeric(rs("pris")) Then bpris = rs("pris") Else bpris = "ingen pris online" End If
17. november 2003 - 16:12
#5
Ja så virker det (efter jeg fik rettet scriptet til) Jeg har bare et prb. Jeg bruger formatnumber til prisen : FormatNumber (bruttopris,2) Dette giver jo så en fejl, jeg kan godt lave en ny if/then men er der en smartere måde ?
17. november 2003 - 16:19
#6
If isnumeric(rs("pris")) Then bpris = FormatNumber(rs("pris")) Else bpris = "ingen pris online" End If
17. november 2003 - 16:25
#7
Det virker, bortset fra jeg får mange decimaler da jeg ikke bruger pris,2 hvad kan jeg gøre ?
17. november 2003 - 16:30
#8
bpris = FormatNumber(rs("pris"),2)
17. november 2003 - 16:36
#9
Nøh det ændrer ikke noget (1472,05882352941) når jeg udskriver variablen bruger jeg response.write bpris mod før response.write FormatNumber (bpris,2)
17. november 2003 - 17:05
#10
nåh - jeg kan se at du først regner bruttopris-variablen senere i scriptet, så det er der de ekstra decimaler kommer på... If isnumeric(rs("pris")) Then bruttopris=rs("pris") bruttopris=bruttopris*7.5 bruttopris=bruttopris + 200 bt=bruttopris * 10 / 100 bruttopris=bruttopris+bt bruttopris=bruttopris / 0.85 bruttopris=formatnumber(bruttopris,2) usgpris=bruttopris / 0.92 usgpris=formatnumber(usgpris,2) Else bruttopris = "ingen pris online" End If eller deromkring
17. november 2003 - 23:06
#11
Tjaaaa, det er jo meget simpelt når man kan :) Tusind tak for hjælpen.
Kurser inden for grundlæggende programmering