|
| On Error GoTo UD Fra : KooL | Vist : 1239 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
| |
| 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.
| |
|
|