Avatar billede dr.truti Nybegynder
14. januar 2002 - 17:50 Der er 13 kommentarer og
1 løsning

On Error GoTo ????

Hej....
Jeg har endnu en (sikkert) banal fejl....

Jeg får en \"Label Not Defined\" Error på denne kode:

---------------------------------------------------
On Error GoTo Error1 \'On Error Function

Dim play_sound As String
Dim ip_adress As String \'Var For IP
ip_adress = Winsock1.LocalIP \'Get IP From Winsock1

play_sound = App.Path

play_sound = \"\\error.wav\"

If Command1.Tag = \"1\" Then
Winsock1.LocalPort = 23
Winsock1.Listen
Label1.Caption = \"\"
Dir1.Path = \"\" & location & \"\"
Command1.Tag = 2
Command1.Caption = \"Stop (Offline)\"
StatusBar1.Panels(1).Text = \"Status = Server Online  (\" & ip_adress & \")\"
StatusBar1.Panels(2).Text = \"Startet At: \" & Time & \"-\" & Date & \"\"
Else
Winsock1.Close
Command1.Caption = \"Start (Online)\"
Command1.Tag = 1
StatusBar1.Panels(2).Text = \"Stopped At: \" & Time & \"-\" & Date & \"\"
StatusBar1.Panels(1).Text = \"Status = Server Offline\"
End If
End Sub

Error1: \'Then On Error 1
Doing_Nothing = MsgBox(\"There Have Been An Error!\", vbOKOnly + vbExclamation, \"Error!\")
If Sound = 1 Then
MediaPlayer1.FileName = play_sound
MediaPlayer1.Play
Else
End If
End Sub
---------------------------------------------------

For at idiot sikre det hele ser Error Boksen sådan ud: http://home1.stofanet.dk/truti/on_error.jpg

Truti
Avatar billede jennemaan Nybegynder
14. januar 2002 - 17:56 #1
din Error1 label skal være defineret inden for proceduren

/Jennemaan
Avatar billede dr.truti Nybegynder
14. januar 2002 - 18:00 #2
Proceduren?

Mener du mellem:
Private Sub Command1_Click()
og
End Sub

???????
Avatar billede jennemaan Nybegynder
14. januar 2002 - 18:01 #3
Private Sub Command1_Click
On Error GoTo Error1 \'On Error Function

Dim play_sound As String
Dim ip_adress As String \'Var For IP
ip_adress = Winsock1.LocalIP \'Get IP From Winsock1

play_sound = App.Path

play_sound = \"\\error.wav\"

If Command1.Tag = \"1\" Then
Winsock1.LocalPort = 23
Winsock1.Listen
Label1.Caption = \"\"
Dir1.Path = \"\" & location & \"\"
Command1.Tag = 2
Command1.Caption = \"Stop (Offline)\"
StatusBar1.Panels(1).Text = \"Status = Server Online  (\" & ip_adress & \")\"
StatusBar1.Panels(2).Text = \"Startet At: \" & Time & \"-\" & Date & \"\"
Else
Winsock1.Close
Command1.Caption = \"Start (Online)\"
Command1.Tag = 1
StatusBar1.Panels(2).Text = \"Stopped At: \" & Time & \"-\" & Date & \"\"
StatusBar1.Panels(1).Text = \"Status = Server Offline\"
End If
Exit Sub

Error1: \'Then On Error 1
Doing_Nothing = MsgBox(\"There Have Been An Error!\", vbOKOnly + vbExclamation, \"Error!\")
If Sound = 1 Then
MediaPlayer1.FileName = play_sound
MediaPlayer1.Play
Else
End If
End Sub

/Jennemaan
Avatar billede tjacob Juniormester
14. januar 2002 - 18:03 #4
Prøv at fjerne >\'Then On Error1< fra linien med din error-label.
Prøv også helt at slette linien, og skriv Error1 igen.

/tjacob
Avatar billede tjacob Juniormester
14. januar 2002 - 18:06 #5
Jennemaan har ret. Jeg havde ikke set din End Sub.
-Se bort fra mit svar.
Avatar billede dr.truti Nybegynder
14. januar 2002 - 18:07 #6
ok det virker fint når jeg kopiere det ind men vil du ikke lige for tælle hvad det er du har ændret da jeg ikke selv kan finde det...

Truti
Avatar billede jennemaan Nybegynder
14. januar 2002 - 18:07 #7
din fejl er at du bruger End Sub istedet for Exit Sub!

/Jennemaan
Avatar billede dr.truti Nybegynder
14. januar 2002 - 18:53 #8
arrr ok.... Hvad sagde jeg.... Min Fejl var banal....
Avatar billede joern Nybegynder
14. januar 2002 - 18:57 #9
Husk:  resume next - et eller andet sted.

M.v.h.  Jørn
Avatar billede jennemaan Nybegynder
14. januar 2002 - 19:01 #10
joern > hvorfor?
Avatar billede joern Nybegynder
14. januar 2002 - 21:12 #11
Jennemaan>>  Ja, det må du s\'gu nok spørge om.  Hvor fortsætter eksekveringen ellers?  Jeg ser nu at man kan lave resume til en label:
Resume line    Execution resumes at line specified in the required line argument. The line argument is a line label or line number and must be in the same procedure as the error handler.

Jeg har aldrig undladt \'Resume Next\'.  Jeg bruger oftest error-handling i forbindelse med åbning af filer på maskinen selv eller på et netværksdrev.  I så fald skal det jo meddeles, hvis der ikke er adgang til en resurse og brugeren skal spørges:  Hvad vil du så?

Men jeg kan godt se at \'Resume Next\' ikke er et must.

M.v.h.    Jørn
Avatar billede martin_moth Mester
14. januar 2002 - 21:54 #12
Har du ikke også en anden lille fejl - der dog ikke har noget med On Error at gøre:

Du skriver:

play_sound = App.Path
play_sound = \"\\error.wav\"

Men jeg tror du mener:

play_sound = App.Path
play_sound = play_sound & \"\\error.wav\"

Men du får en backslash for meget hvis din App.path er i roden af et drev, for at fange den kan du skrive

play_sound = App.Path
If Len(play_sound) < 4 Then
  play_sound = play_sound & \"error.wav\"
else
  play_sound = play_sound & \"\\error.wav\"
end if

Men det var jo ikke det du spurgte om ;-)

/Martin
Avatar billede dr.truti Nybegynder
14. januar 2002 - 22:10 #13
martin_moth > Det fungere fint her hos mig :)
Avatar billede martin_moth Mester
14. januar 2002 - 23:09 #14
OK - jeg skal heller ikke blande mig unødigt. Men
play_sound = App.Path
har ingen mening når du lige derefter overskriver play_sound med
play_sound = \"\\error.wav\"

Jeg håber du kan se hvad jeg mener med ovenstående. Men virker det, er der jo ingen grund til at ændre noget ;-) /Martin
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester