Domino 9 und frühere Versionen > Entwicklung
Aktuelles Programm kann nicht geschlossen werden ???
mgubler:
Guten Morgen zusammen,
ich habe folgendes Problem bei meinem Abschlussprojekt.
Ich habe ein Skript im QuerySave einer Maske erstellt, das die Felder auf deren Inhalt prüft.
Wenn nun ein Fehler auftritt lasse ich via Messagebox eine Nachricht ausgeben. Danach wird Continue auf False gesetzt.
Und danach soll man dann wieder zur Eingabe in die Maske gelangen.
Leider funktioniert das aber nicht.
Nachdem ich auf okay klicke, erhalte ich eine neue Messagebox, die mir mitteilt, dass das aktuelle Programm nicht geschlossen werden kann.
Hier habe ich mal einen Teil des Scripts:
--- Code: ---Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim boxType As Long, answer As Integer
plz=source.FieldGetText("fld_Plz_TX")
boxType& = MB_OK + MB_ICONINFORMATION
If plz = "" Then
answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
Goto Ende
Else
If ( Len(plz) <> 5 ) Then
answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
Goto Ende
End If
Goto Ende
End If
Ende:
Continue=False
End Sub
--- Ende Code ---
Es wäre toll, wenn mir jemand schnellstens helfen könnte, da es wichtig ist.
Gruss und Danke im voraus,
mgubler
eknori:
Ich denke, der Fehler hat weniger was mit dem Code zu tun. Habe den gleichen Fehler in einer anderen Anwendung. Werde mich da heute mal auf die Suche begeben.
Trotzdem solltest du deinen Code ein wenig umbauen, da du sonst aus der Nummer nie mehr rauskommst
--- Zitat --- End If
Goto Ende
End If
Ende:
Continue=False
End Sub
--- Ende Zitat ---
danach ist continue immer FALSE, da du zwar in deinen Abfragen zur Marke springst, aber auch, wenn alles i.O. ist kommst du ja zwangsläufig an die Stelle.
Also entweder
End If
Goto Ende
End If
exit sub
Ende:
Continue=False
End Sub
oder du läßt das GoTo Ende ganz weg und setzt continue gleich an der richtigen Stelle auf FALSE
If plz = "" Then
answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
continue = false
Else
If ( Len(plz) <> 5 ) Then
answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
continue = false
End If
End If
eknori
mgubler:
Danke erstmal für den Hilfeansatz.
Solltest Du (ich hoffe ich darf Du sagen?!) eine Lösung finden, so wäre es nett, wenn Du diese Lösung hier posten könntest.
Danke im voraus,
mgubler
Performance:
eknori hat's doch schon beschrieben - es ist ein Logikfehler mehr nicht
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim boxType As Long, answer As Integer
plz=source.FieldGetText("fld_Plz_TX")
boxType& = MB_OK + MB_ICONINFORMATION
If plz = "" Then
answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
GoTo Ende
Else
If ( Len(plz) <> 5 ) Then
answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
Goto Ende
End If
End If
Exit sub
Ende:
Continue=False
End Sub
cu
mgubler:
Das Problem bestand auch nach der Korrektur noch!
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln