Aloha
gerald3659 hat geschrieben:Klar was ich meine?
Ja, entspricht ja genau dem, was ich am Ende meines letzten Beitrags gesagt habe.
Meine erste Idee dazu wäre, die Spalte mit der Mit_ID auszublenden und stattdessen ein verstecktes Feld zu verwenden, bei dem man als Default-Wert beim Öffnen die entsprechende ID einträgt.
So wäre es beim normalen Arbeiten damit unmöglich, die ID zu ändern, sie würde jedoch bei jeder Änderung / jedem neuen Datensatz automatisch eingetragen werden.
Wenn Du z.B. einfach mal ein Textfeld in Dein zu öffnendes Formular ziehst -> Sichtbar auf "Nein" -> Reiter "Daten" -> an Spalte "Mit_ID" binden.
Nennen wir es einfach mal "txtMit_ID" (Kontrollfeld -> Eigenschaften -> Name)
Im Makro dieses Feld noch ansprechen und den FK setzen:
Code: Alles auswählen
oTxt = newForm.getByName("txtMit_ID")
oTxt.DefaultText = nID
Also im Gesamtkontext:
Code: Alles auswählen
sub evCtl_OpenFrom(event as object)
DIM Tag AS String
Tag = event.Source.Model.Tag
oMainForm = event.Source.Model.Parent
nID = oMainForm.getString(oMainForm.findColumn("ID"))
oForm() = Split(Tag, ",")
newDoc = ThisDatabaseDocument.FormDocuments.getByName( Trim(oForm(0)) ).open
newForm = newDoc.Drawpage.Forms(0)
newForm.Filter = """Mit_ID"" = " & nID
newForm.ApplyFilter = True
oTxt = newForm.getByName("txtMit_ID")
oTxt.DefaultText = nID
newForm.reload
ThisDatabaseDocument.FormDocuments.getByName( Trim(oForm(1)) ).close
end sub
(ungetestet, da hier gerade kein OpenOffice zur Verfügung)
Diese Vorgehensweise würde natürlich die Arbeit mit dem Formular beeinträchtigen, wenn es nicht aus dem Hauptformular heraus geöffnet wird.
Keine Ahnung, ob das vorkommt bzw. relevant ist.