Ich habe aktuell Probleme dabei, eingegebene Daten in einem Tabellenkontrollfeld nach deren Überprüfung wieder zurück zu setzten.
Das Skript wird durch das Event "Vor dem Aktualisieren" einer ListBox-Spalte aufgerufen (vereinfachte Version ohne Überprüfung, aber klappt auch nicht):
Code: Alles auswählen
sub checkRow( oEvent as Object)
dim oForm as Object
dim oSelect as Object
if MsgBox( "Eintragen?", 36) = 7 then
oSelect = oEvent.Source 'ListBox
oForm = oSelect.Parent.Parent 'Form
oForm.updateNull( 5) 'Column 5 beinhaltet den Wert, der durch die Listbox gesetzt wird.
oForm.updateRow()
end if
end sub
Das wäre ja imho der richtige weg. War so auch in anderen Threads zu lesen, nur leider ging es da nie um Tabellenkontrollfelder.
Das Verhalten ist da sehr merkwürdig, mal klappt es mal nicht. Setze ich ein oForm.reload() hinter das updateRow stürzt Base immer ab.
Auf die ListBox, bzw. deren Methoden hab ich anscheinden an der Stelle keinen Zugriff. Versuche ich mit oSelect.selectItemPos( 0, true) den ersten Wert also leer auszuwählen, erhalte ich die Fehlermeldung "Eigenschaft oder Methode nicht gefunden", obwohl der Beobachter oSelect als ListBox ausweist.