Wenn Ihr Schaltflächen-Script-Code tatsächlich nur aus exakt dieser einen Zeile besteht, dann ist das Problem, dass die Objekt-Variable oInputForm
nicht bekannt ist. Lösung:
Dim oInputForm : Set oInputForm = cRM.CurrentProject.ActiveViews.ActiveView.CurrentInputForm(0)
oInputForm.SetContentsByName "PhysikalischerFeldname", "Inhalt"
oInputForm.SetContentsByName "PhysikalischerFeldname2", "Inhalt2"
...
Set oInputForm = Nothing
Wenn Sie wirklich nur ein einziges Feld belegen wollen, dann reicht auch eine Zeile.
cRM.CurrentProject.ActiveViews.ActiveView.InputForm(0).SetContentsByName "PhysikalischerFeldname", "Inhalt"
Aber sobald Sie mehrere Felder setzen wollen, sollten Sie die Objekt-Variable einführen (Performance!).
- Ihr „bezeichnerTextfeld“ muss der physikalische Feldname sein (NICHT der Aliasname).
- Falls Sie Fließkomazahlen oder Datumswerte mit dem Inhalt einer Variablen belegen möchten, sollten Sie
SetContentsValueByName
benutzen, diese umgeht Probleme mit Windows-System-spezifischer Fließkommazahlen- und Datumsformatierung.
-
CurrentInputForm(0)
wechselt automatisch in den Bearbeiten-Modus, sofern dieser nicht bereits aktiv ist (Sie können nur im Bearbeiten-Modus ein Eingabemaskenfeld setzen, der Anwender muss danach ja noch selber speichern). Achtung! Falls der Benutzer kein Recht hat, diesen Datensatz zu bearbeiten, wird Nothing zurückgegeben und Ihr Script steigt dann mit einer Fehlermeldung aus. Um es perfekt zu machen, sollten Sie oInputForm
noch auf <> Nothing
abprüfen, oder (einfacher) die Schaltfläche darf per Bearbeitbarkeitsbedingung nur geklickt werden, wenn sie sich eh schon im Bearbeiten-Modus befindet, dann haben Sie das Problem umschifft.
Wenn Sie hierzu noch Fragen haben, dann schreiben Sie nochmal kurz. 