Supportnet / Forum / Datenbanken
Pobleme mit Umschaltfläche
Frage
Hallo,
habe folgendes Problem:
Ich arbeite in einem Formular wo eine Umschaltfläche angelegt ist. Auf diese Umschaltfläche habe ich eine Function gelegt die bei einem bestimmten Kriterium einen Fehler ausgibt. Das Problem ist aber das die Umschaltfläche trotzdem "eingedrückt" ist. Wie bekomme ich das hin das dies nur dann der Fall ist wenn kein Fehler kommt?? Vielleicht habe ich die Function auch nur an einer falschen Stelle eingebunden.
Vielen Dank schonmal
LG
Lars
Antwort 1 von erik
Meinst du einen Laufzeitfehler? Den kannst du zunächst vor der problematischen Stelle abfangen mit
Anschließend prüfst du nach, ob ein Fehler aufgetreten ist und setzt die Umschaltfläche zurück.
On Error Resume NextAnschließend prüfst du nach, ob ein Fehler aufgetreten ist und setzt die Umschaltfläche zurück.
If Err.Number > 0 Then
Me.Umschaltflaeche.Value = False
Err.Clear
End IfAntwort 2 von metalfreakla
nein nein nix mit laufzeitfehler. Die Fehlermeldung ist von mir erzeugt und die soll da auch kommen. und wenn sie erscheint soll halt nich die umschaltfläche "eingedrückt" sein. Hier mal die Function falls das weiterhilft.
und hier die Stelle wo diese aufgerufen wird:
ich hoffe jetzt ist es etwas verständlicher :)
Danke
Lars
Public Function IsCustomerLocked(ByVal vCountry As String, ByVal vOperator As String) As Boolean
Dim temp As String
Dim tempcount As Integer
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
With rs
temp = "SELECT count(*) FROM [AMSIRPQ_LOCKED_CUSTOMER_COUNTRY] where [COUNTRY] = ´" & UCase(vCountry) & "´ AND [OPERATOR] = ´" & UCase(vOperator) & "´"
.Open temp, CurrentProject.Connection, adOpenDynamic
End With
rs.MoveFirst
tempcount = rs.Fields.Item(0).Value
If tempcount = 0 Then
IsCustomerLocked = False
Else
MsgBox "Used Country/Customer locked, in case of questions call administrator.", vbOKOnly, "Info"
IsCustomerLocked = True
End If
End Function
und hier die Stelle wo diese aufgerufen wird:
Private Sub PROJECT_EDIT_MODE_Click()
If PROJECT_EDIT_MODE = True Then
If pussy_alarm(Me) = False Then Exit Sub
End If
If IsNull(Me![PROJECT_ID].Value) = False Then
If IsCustomerLocked(Me![COUNTRY], Me![CUSTOMER]) = True Then
Exit Sub
End If
´in Access 2000 cannot be memo field with "" value
If (PROJECT_EDIT_MODE = False) And (Me![NOTICE_EF] = "") Then
If Me![NOTICE_EF].Tag = "Modified" Then
Me![NOTICE_EF] = " "
End If
End If
ChangeEditMode Me, PROJECT_EDIT_MODE
´ reset Tag flag for Notice field
Me![NOTICE_EF].Tag = ""
If PROJECT_EDIT_MODE = False Then
´ ****** Funktion Datensatz entsperren ******
argclass = "PROJ"
argobj = Me![PROJECT_ID]
ObjectUnlock argclass, argobj
PROJECT_EDIT_MODE.Caption = "&Edit Mode Off"
Timerenabled = False
Me![COUNTRY].Enabled = True
Me![CUSTOMER].Enabled = True
Me![SITE].Enabled = True
Me![EXCHANGE].Enabled = True
Me![EXTENSION].Enabled = True
Me![PROJECT_ID].Enabled = True
Me![PROJECT_ADD].Enabled = True
Me![PROJECT_COPY].Enabled = True
Me![BN_FRM_EXIT].Enabled = True
Me![Project_Input_Edit_Mode].Enabled = True
Me![Project_Input_Add].Enabled = True
Me![PROJECT_INPUT_DELETE].Enabled = True
If modify_flag = True Then
Me![TF_MODIFIED] = Now()
Me![TF_PUSER] = PRISMA_Current_User.USERNAME
End If
Call CHECK_FOR_RIGHTS(Me)
Me.Requery
Me![COUNTRY].SetFocus
Else
´ ****** Locked-Prüfung u. Sperrung ******
argclass = "PROJ"
argobj = Me![PROJECT_ID]
If TryLock(argclass, argobj) = False Then
PROJECT_EDIT_MODE = False
ChangeEditMode Me, PROJECT_EDIT_MODE
Me.Requery
Exit Sub
Else
modify_flag = False
PROJECT_EDIT_MODE.Caption = "&Edit Mode On"
Timerenabled = True
TimerCount = 0
Me![COUNTRY].Enabled = False
Me![CUSTOMER].Enabled = False
Me![SITE].Enabled = False
Me![EXCHANGE].Enabled = False
Me![EXTENSION].Enabled = False
Me![PROJECT_ID].Enabled = False
Me![PROJECT_ADD].Enabled = False
Me![PROJECT_COPY].Enabled = False
Me![BN_FRM_EXIT].Enabled = False
Me![Project_Input_Edit_Mode].Enabled = False
Me![Project_Input_Add].Enabled = False
Me![PROJECT_INPUT_DELETE].Enabled = False
Me![TYPE_OF_ORDER_EF].SetFocus
End If ´ der Locked-Prüfung ********
End If
Else
MsgBox "No Project selected", vbExclamation
PROJECT_EDIT_MODE = False
End If
End Sub
ich hoffe jetzt ist es etwas verständlicher :)
Danke
Lars
Antwort 3 von pÖq
hi,
Zunächst bedarf folgender KoT(e) erweiterte Erläuterung:;-)
Zunächst bedarf folgender KoT(e) erweiterte Erläuterung:;-)
If pussy_alarm(Me) = False Then Exit SubAntwort 4 von erik
Ei, was müssen wir dann abändern?
If IsCustomerLocked(Me![COUNTRY], Me![CUSTOMER]) = True Then
Me.<Umschaltfläche>.Value = False
Exit Sub
End IfAntwort 5 von metalfreakla
ohh man das war ja leicht *schäm*
ich danke dir wieder mal
LG und schönen Feiertag
Lars
ich danke dir wieder mal
LG und schönen Feiertag
Lars

