Hallo supernewb,
es gibt keine WHERE Klausel im INSERT Statement.
Es gibt ein INSERT Statement, dessen Werte über ein SELECT ermittelt werden, und dieses SELECT kann ein WHERE haben. Löschst Du SELECT raus und lässt WHERE stehen, kommt statt SQL UQL heraus (Unsinniger Quatsch, Leider)
Wenn Du in einer mit INSERT erzeugten Zeile noch zwei Spalten nachtragen willst, musst Du das UPDATE Statement bemühen. DAS kennt ein WHERE.
Warum dein Prepared Insert nicht funktioniert, kann ich nicht sagen. Dazu kenne ich ACCESS zu wenig. Liegt es am Statement oder deinen Daten? Schon mal mit konstanten Werten statt den MM_IIFs getestet? Ansonsten müssest Du da mal Handbücher / Dokus studieren.
Das Einfügen von Grund und Abgang könntest Du auch anders hineintricksen. Vereinfachtes Beispiel:
INSERT INTO foo (col1, col2, extra1, extra2)
SELECT col1, col2, 'extrawert1' as extra1, 411 as extra2
FROM Dingsbums
WHERE id=4711
D.h. du kannst im SELECT auch Konstanten als SELECT-Spalte angeben. Das ist auf jeden Fall besser als ein zusätzliches Update-Statement. Ob du diese beiden Spalten per ? in ein prepared Statement einsetzen kannst, DAS weiß ich allerdings nicht. In der SELECT Liste sind normalerweise keine Parameter zulässig. Müsstest Du probieren.
Viel Glück.
Rolf
sumpsi - posui - clusi