2016-08-10 4 views
2

Ich habe eine riesige Form im Zugriff, die Benutzer daran hindern muss, die Details darin zu bearbeiten. Ich habe das getan, indem ich Me.Allowedits auf false gesetzt habe. Aber es gibt ein Feld, das ich für die Bearbeitung offen halten muss. Um dies zu tun, habe ich jus den Code gelegt, um das Feld nach dem erlaubten Teil an zwei Stellen zu öffnen, wo der erlaubte it-Code auftritt. der Fluss auf war das Debuggen wie dieseein Feld nach dem Zugriff auf Zugriff öffnen

Load 
Me.allowedits =false 
if condition=true 
field.locked=false 
field.enalble=true 

Das gleiche, was ich in der aktuellen Ereignis des form.Basically repliziert habe, habe ich nur den Code gehalten, wo die AllowEdits eingestellt wurde Fasle. Aber mein Feld ist immer noch gesperrt und kann es nicht bearbeiten.Ist das, wenn wir allowedits = false gesetzt haben, können die Felder auf der Seite nicht wieder bearbeitbar gemacht werden. Gibt es noch eine Alternative?

Schätzen Sie die Hilfe.

+0

Ist das ein Feld gebunden oder ungebunden? – Andre

+0

Danke für die Antwort andre ..... das Feld, über das ich spreche, ist jus ein einfaches Textfeld, in dem der Benutzer ein Datum auswählt und speichert es in der Tabelle ... so ja seine Grenze ich denke –

+0

Sie können das einstellen Steuerelemente, um die Bearbeitung zu verhindern (Gesperrt = True), anstatt das Formular. Es ist oft schneller, wenn Sie ein Tag hinzufügen. – Fionnuala

Antwort

1

Dann können Sie keine Einstellungen auf Formularebene verwenden.

Wenn dies konstant ist (die Felder sind immer gesperrt), setzen Sie einfach alle anderen Steuerelemente auf Locked = True.

Wenn es dynamisch ist, verwenden Sie ein Verfahren wie folgt aus:

Private Sub SetEditable(EnableEdit As Boolean) 

    Dim ctl As Control 

    For Each ctl In Me.Controls 
     ' The main editable control types (add more if they occur on your form) 
     If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or _ 
      ctl.ControlType = acCheckBox Or ctl.ControlType = acSubform Then 

      If ctl.Name = "MySpecialDateField" Then 
        ' Always editable 
        ctl.Locked = False 
       Else 
        ctl.Locked = Not EnableEdit 
        ' If you want to provide a visual feedback: 
        ' 0 = Flat (locked), 2 = Sunken (editable) 
        ctl.SpecialEffect = IIf(EnableEdit, 2, 0) 
       End If 
      End If 

     End If 
    Next ctl 

End Sub 
+0

Sie sind Kontrollen, keine Felder. :) – Fionnuala

+0

Vielen Dank für Ihre Vorschläge Andre ... Ich habe es notiert, wenn ich es brauche einige andere ... Momentan habe ich jedes Feld einzeln gesperrt ... hatte eine Menge manuelle Arbeit, aber ich brauchte es schnell –

Verwandte Themen