Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Schreibschutz auf Unterfomular

Begonnen von smily68, Februar 06, 2011, 20:45:16

⏪ vorheriges - nächstes ⏩

smily68

Hallo

Ich habe ein Auftragsformular mit einem Unterformular, in welchem ich die Auftragspositionen anzeige. Mit einer Schaltfläche schliesse ich einen Auftrag ab und setzte den Status auf abgeschlossen. Beim Starten des Formulares werden alle Datensätze mit dem Status abgeschlossen für die Bearbeitung gesperrt. (Me.AllowEdits = False) Das funktioniert auch so. Nun möchte ich aber auch die Daten von meinem Unterformular sperren. Doch ich weiss nicht genau wie ich auf das Statusfeld vom Auftragsformular vom Unterformular aus zugreiffen kann. Wer kann mir bei meinem Problem helfen?

Hier sind meine Scripte:

Private Sub batAuftr_AbschliessBeenden_Click()
' Auftrag abschliessen, Status setzen und Formular schliessen
   
    If Auftr_Status = 2 Then
        MsgBox "Der Auftrag ist bereits abgeschlossen"
        On Error GoTo Err_batAuftr_AbschliessBeenden_Click
        DoCmd.Close
        Exit Sub
    Else
        Auftr_Status = 2
        On Error GoTo Err_batAuftr_AbschliessBeenden_Click
        DoCmd.RunCommand acCmdSaveRecord
        DoCmd.Close
        Exit Sub
   
    End If
Exit_batAuftr_AbschliessBeenden_Click:
    Exit Sub

Err_batAuftr_AbschliessBeenden_Click:
    MsgBox Err.Description
    Resume Exit_batAuftr_AbschliessBeenden_Click

End Sub

Private Sub Form_Current()
' Beim Aufrufen eines Auftrages mit dem Status abgeschlossen ist der Auftrag schreibgeschützt

    If Auftr_Status = 2 Then
        Me.AllowEdits = False
    Else
        Me.AllowEdits = True
    End If
   
End Sub

database

#1
Hallo,

eine Möglichkeit wäre es, das Unterformular zu sperren, wenn ein Auftrag abgeschlossen ist.
Füge die Befehle zum Sperren bzw entsperren in deine Code ein:


Private Sub Form_Current()
' Beim Aufrufen eines Auftrages mit dem Status abgeschlossen ist der Auftrag schreibgeschützt

   If Auftr_Status = 2 Then
       Me.AllowEdits = False
       Me.DeinUnterformular.Enabled = False
       Me.DeinUnterformular.Locked = True
   Else
       Me.AllowEdits = True
       Me.DeinUnterformular.Enabled = True
       Me.DeinUnterformular.Locked = False
   End If
   
End Sub


HTH

p.s. die Befehle zur Fehlerbehandlung solltest du in den Prozedurkopf schreiben und nicht in die Bedingung:


Private Sub batAuftr_AbschliessBeenden_Click()
' Auftrag abschliessen, Status setzen und Formular schliessen

On Error GoTo Err_batAuftr_AbschliessBeenden_Click

    If Auftr_Status = 2 Then
        MsgBox "Der Auftrag ist bereits abgeschlossen"
        DoCmd.Close
    Else
        Auftr_Status = 2
        DoCmd.RunCommand acCmdSaveRecord
        DoCmd.Close
    End If

    Exit sub

Exit_batAuftr_AbschliessBeenden_Click:
    Exit Sub

Err_batAuftr_AbschliessBeenden_Click:
    MsgBox Err.Description
    Resume Exit_batAuftr_AbschliessBeenden_Click

End Sub

DF6GL

Hallo,



Private Sub Form_Current()
' Beim Aufrufen eines Auftrages mit dem Status abgeschlossen ist der Auftrag schreibgeschützt

   If Auftr_Status = 2 Then
       Me.AllowEdits = False
       Me!Ufo_Name.Form.AllowEdits = False

'oder auch
' Me!Ufo_Name.Enabled=false
' Me!Ufo_Name.Locked=True

   Else
       Me.AllowEdits = True
       Me!Ufo_Name.Form.AllowEdits = True
' Me!Ufo_Name.Enabled=True
' Me!Ufo_Name.Locked=False

   End If
   
End Sub
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access