Ich habe ein Problem mit SubForms in Access, da ist etwas, das ich nicht verstehe. Ich habe eine Form (frm) mit einem Steuerelement (Combo) und das Formular enthält ein Unterformular (Subfrm). Im Debugmodus mache ich zwei Haltepunkte, einen bei Combo_AfterUpdate und einen anderen bei frm_AfterUpdate. wenn ich die Daten in der Combo alles ändern scheint in Ordnung:Form_AfterUpdate ist verloren während einer SubForm.Recordset Änderung
Stopp bei combo_AfterUpdate> (außer Form)> Haltestelle frm_AfterUpdate
jetzt ich Code zu meinem combo_AfterUpdate Eventhandler hinzufügen, die die subfrm.Form.Recordset ändert:
Halt in combo_AfterUpdate> (außer Form)> ...
keinen Halt am frm_AfterUpdate !? Wer weiß warum?
EDIT: hier der Code, der in combo_AfterUpdate ausführt:
If Not IsNull(Me!childID) Then
Dim childSubSource As QueryDef
Set childSubSource = CurrentDb.QueryDefs("qry_parent_Detail_child_WithParam")
childSubSource.Parameters("childID").Value = Me!childID
Set frmChildSub.Form.Recordset = _
childSubSource.OpenRecordset(dbOpenDynaset, dbSeeChanges)
End If
EDIT: interessant .. wenn ich
ändernSet frmChildSub.Form.Recordset = _
childSubSource.OpenRecordset(dbOpenDynaset, dbSeeChanges)
zu
frmChildSub.Form.Recordsource= childSubSource.SQL
die Ereignisse arbeiten wie beabsichtigt. Ich habe die schmutzige Eigenschaft der Elternform überprüft und es scheint, dass das Problem hier liegt. Wenn ich dem Unterformular über .recordset ein neues Objekt zuweisen, werden die Änderungen im Elternformular entweder gespeichert oder verloren, trotzdem ist drecky wieder falsch, obwohl ich die Combobox geändert habe.
Grüße
Könnten Sie einen Code posten, der "subfrm.Form.Recordset" ändert? Es kann sein, weil Ihr Update abgebrochen wird, das Ereignis des Formulars nicht ausgelöst wird –
Ich vermute, ich verstehe nicht, warum Sie das Recordset eines Formulars nach einer der Werte der Steuerelemente tauschen würde. Ich vermute, du versuchst etwas ziemlich "Nicht-Standard" hier zu machen. Wird Ihre Änderung an der Combo in der Datenbank gespeichert oder handelt es sich um eine ungebundene Kontrolle? – HK1
Igor: hier der Code. childID ist der Wert der Combobox. HK1: Es ist ein gebundenes Steuerelement und ich möchte das Re-Cord-Set austauschen, da ich unterschiedliche Daten in dem Unterformular abhängig von dem Wert in der Combobox benötige. Ich würde die "Link Master-/Childfields" -Feauture verwenden, aber meine Eltern-Recordset wird auch ausgetauscht:/ – Egi