/ Forside/ Teknologi / Udvikling / VB Scripts / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB Scripts
#NavnPoint
technet 385
MouseKeep.. 300
Dark_Magi.. 250
natmaden 200
Harlekin 200
AntonV 200
EXTERMINA.. 200
gandalf 160
smorch 139
10  strarup 110
On Error GoTo UD
Fra : KooL
Vist : 1102 gange
50 point
Dato : 18-01-04 01:26

Heysan :)

Vi fik af vide af vores lære at vi kunne bruge "On Error GoTo UD" i en Sub.
Dette skulle så bevirke at hvis en fejl opstod ville den gå til UD: og udføre alt der står mellem UD: og End Sub.

Jeg har nu lavet et simpelt script hvor dette indgår.

I former er der:
1 knap kaldet CmdBestemPorto
1 Label kaldet LblPorto

Kode
Option Explicit
Dim Vægt As Single, Porto As Single

Private Sub CmdBestemPorto_Click()
On Error GoTo UD
Vægt = InputBox("Hvad vejer brevet i gram?")
If Vægt > 50 And Vægt <= 100 Then
Porto = 5.5
ElseIf Vægt > 100 And Vægt <= 250 Then
Porto = 6.5
ElseIf Vægt > 250 And Vægt <= 1000 Then
Porto = 12
ElseIf Vægt > 1000 Then
MsgBox "Dette brev vejer for meget til at være et storbrev"
End If
LblPorto = Porto & " kr."
UD: MsgBox "handlingen er annuleret"
End Sub


Her skulle man så, ved tryk på [cancel] i inputboxen, tvinge en fejl frem så den ryger ned til UD:
Det virker oxo fint.

Men når jeg så intaster et tal der opfylder et af If kriterierne, og trykker på [OK]
Så kommer beskeden fra UD: oxo...

Er der en der kan forklare det?

Mvh KoL

 
 
Kommentar
Fra : molokyle


Dato : 18-01-04 11:09

Min viden om VB er stærkt begrænset

Din test 'On Error GoTo UD' gælder vel for alle værdier af Error, derfor hopper den altid til UD. Du må vist teste for den aktuelle fejlcode i Error. Altså, hvis Error er lig kode dit eller dat, så UD.

</MOLOKYLE>




Kommentar
Fra : KooL


Dato : 18-01-04 12:52

jo jo.
men der skulle ikke være andre Errors end hvis der trykkes på [cancel]
(eller [OK] når der ikke er indtastet nogen vægt)

Mvh KoL

Accepteret svar
Fra : molokyle

Modtaget 50 point
Dato : 18-01-04 13:16

Det jeg mener er at Error altid vil have en værdi, hvis det er en variabel. Er det en message, kan jeg godt forstå hvad du mener, men se alligevel her : http://www.juicystudio.com/tutorial/asp/err.asp

Jeg er ikke helt inde i VBscript, som tidligere anført

</MOLOKYLE>

Kommentar
Fra : Manse9933


Dato : 18-01-04 17:30



Kommentar
Fra : molokyle


Dato : 19-01-04 09:37

Jeg tænkte især på dette eksempel :

Kode
<%
' Enable Error Handling
On Error Resume Next
' Declare variables
Dim intX, intY, intZ
intX = 10
intY = 0
' Divide 10 by 0
intZ = intX / intY
' Check for errors
' If Err.Number not equal to 0 an error has occurred
If Err.Number <> 0 Then
Response.Write "<p><b>The following Error has occured:</b></p>"
Response.Write "Number: " & Err.Number & "<br>"
Response.Write "Description: " & Err.Description & "<br>"
Response.Write "Source: " & Err.Source & "<br>"
Err.Clear
Else
Response.Write intX & " / " & intY & " = " & intZ
End If
%>


Det er fra en ASP side, men da ASP ikke har error handling bruges VBscript's Err object.

</MOLOKYLE>

Kommentar
Fra : KooL


Dato : 19-01-04 13:47

Hej igen :)

Undskyld der lange vendtetid Molokyle, jeg skulle lige have tid til at sætte mig ind i alt det nye :)

Jeg troede ikke at Error ver en msg. Men trode kun den var tilstede hvis det opstod en fejl.
og derfor kun ville springe til ud hvis der var en fejl.
Jeg har kikket på den HP. der er meter jeg ikke forsttår der - jeg er jo ikke så langt i VB endnu.
Men løsningen til mit spørsmål var der :D

Med lidt roden rundt og legen kom det til at se såleddes ud:

Kode
Option Explicit
Dim Vægt As Single, Porto As Single

Private Sub CmdBestemPorto_Click()
On Error GoTo UD
Vægt = InputBox("Hvad vejer brevet i gram?")
If Vægt > 50 And Vægt <= 100 Then
Porto = 5.5
ElseIf Vægt > 100 And Vægt <= 250 Then
Porto = 6.5
ElseIf Vægt > 250 And Vægt <= 1000 Then
Porto = 12
ElseIf Vægt > 1000 Then
MsgBox "Dette brev vejer for meget til at være et storbrev"
End If
LblPortoA = Porto & " kr."
UD:
If Err.Number <> 0 Then
MsgBox "handlingen er annuleret"
End If
End Sub


Og det virker !! :D
som du sagde, er error en variabel som har værdien 0 til en fejl opstår.

Thx tor svarret, Det er super fedt :D

BTW:
Hvad er ASP ?
Og Manse9933 - hvad er det du smiler af?

Mvh KoL

Godkendelse af svar
Fra : KooL


Dato : 19-01-04 13:48


                        

Kommentar
Fra : molokyle


Dato : 19-01-04 14:04

Common Gate Interface : CGI

ASP : Active Serverside Pages. Programmel der afvikles på serveren istedet for hos klienten.
PHP, Perl er også eksempler på denne slags programmeringssprog/interfaces.

I Serverside Hyper Text Markup Language : SHTML kan du også skrive serside kode.

Java, JavaScript, VBscript og Flash afvikles på klientens maskine.

</MOLOKYLE>

Kommentar
Fra : KooL


Dato : 19-01-04 14:07

Tak igen Molokyle :)

Mvh KoL

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177415
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste