Supportnet Computer
Planet of Tech

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

On Error Resume Next


Anschließ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 If


Antwort 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.


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:;-)

 If pussy_alarm(Me) = False Then Exit Sub


Antwort 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 If


Antwort 5 von metalfreakla

ohh man das war ja leicht *schäm*
ich danke dir wieder mal

LG und schönen Feiertag
Lars

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: