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