Hi - vorweg: ich habe jetzt das commit auf alle relevanten Felder gesetzt - damit funktioniert es.
Die Anwendung ist ein Bank-Überweisungs-formular. Ich habe die Lösung mit den zwei Tabellen gewählt, weil es mir als der einfachste Weg schien - Base unterstützt ja keine Kombinationsfeld mit mehreren gebunden Spalten.
Das Formular ist mit der Tabelle "tbl_Ueberweisung" verbunden. Bei der Eingabe eines Name in das Kombinationsfeld "Empfänger" wird ein Makro ausgelöst, das in der zweiten Tabelle "tbl_Archiv" nach dem Namen fahndet. Wird es fündig, dann füllt es die Spalten Bank, BLZ und Kontonummer der ersten Tabelle aus. Und zwar tut es dies, indem es per INSERT INTO direkt in die Tabelle "tbl_Ueberweisung" schreibt. Wenn der Name nicht bekannt ist, besteht eine zweite Abfrage bei der BLZ, diese fahndet nach bekannten Banken und trägt diese ggf ein.
Wenn die Überweisung fertig ausgefüllt ist, kann man sie ausdrucken und per Button die Daten ins Archiv übernehmen. Die Ursprungstabelle wird dabei geleert, so dass jedesmal mit einem leeren Überweisungsformular gestartet wird. Ich war eigentlich ganz stolz auf diese Lösung. (Ja ich weiß, ist anachronistisch in Zeiten von Online-Überweisungen, aber das hat schon seine Gründe...)
An einer Stelle hängt es nun allerdings noch - ganz kurios. Beim Eingeben des Betrages soll das Datumsfeld automatisch auf das Tagesdatum gesetzt werden. Also wird nach dem Aktualisieren des Betragsfeldes folgendes Makro ausgelöst:
Code: Alles auswählen
Dim strDBName, strSQL as String
Dim bTF as Boolean
objForm.updaterow()
strSQL = "UPDATE ""tbl_Ueberweisung"" SET ""Datum"" = " & "'" & date() & "'" & "WHERE ""ID"" = " & "'0'"
bTF = objStatement.execute(strSQL)
MsgBox bTF
objForm.reload
Die Messagebox habe ich zu Debugzwecken eingesetzt: das Datum wird nämlich vom Formular nicht angezeigt. bTF steht auf "false" - es gibt aber keine Fehlermeldung und wenn ich die Datenbank öffne, steht das Datum in der Tabelle, wo es hingehört (warum dann also false??)
Auch ein manuelles Reload des Formulares bringt nichts - aktiviere ich allerdings den "Formular bearbeiten Modus" und gehe anschließend wieder in die Datenansicht, wird das Datum im entsprechenden Feld angezeigt. Merkwürdig, oder?
Vielleicht habe ich schon zuviel mit dem Formular herumexperimentiert, Datenbank-Anbindungen verändert etc....
Es sind halt meine ersten Gehversuche mit Base. Mit Access war ich schon deutlich weiter.
Nochmal: hast du vielleicht einen Link bzgl. "event.source.model"?
Hi - vorweg: ich habe jetzt das commit auf alle relevanten Felder gesetzt - damit funktioniert es.
Die Anwendung ist ein Bank-Überweisungs-formular. Ich habe die Lösung mit den zwei Tabellen gewählt, weil es mir als der einfachste Weg schien - Base unterstützt ja keine Kombinationsfeld mit mehreren gebunden Spalten.
Das Formular ist mit der Tabelle "tbl_Ueberweisung" verbunden. Bei der Eingabe eines Name in das Kombinationsfeld "Empfänger" wird ein Makro ausgelöst, das in der zweiten Tabelle "tbl_Archiv" nach dem Namen fahndet. Wird es fündig, dann füllt es die Spalten Bank, BLZ und Kontonummer der ersten Tabelle aus. Und zwar tut es dies, indem es per INSERT INTO direkt in die Tabelle "tbl_Ueberweisung" schreibt. Wenn der Name nicht bekannt ist, besteht eine zweite Abfrage bei der BLZ, diese fahndet nach bekannten Banken und trägt diese ggf ein.
Wenn die Überweisung fertig ausgefüllt ist, kann man sie ausdrucken und per Button die Daten ins Archiv übernehmen. Die Ursprungstabelle wird dabei geleert, so dass jedesmal mit einem leeren Überweisungsformular gestartet wird. Ich war eigentlich ganz stolz auf diese Lösung. (Ja ich weiß, ist anachronistisch in Zeiten von Online-Überweisungen, aber das hat schon seine Gründe...)
An einer Stelle hängt es nun allerdings noch - ganz kurios. Beim Eingeben des Betrages soll das Datumsfeld automatisch auf das Tagesdatum gesetzt werden. Also wird nach dem Aktualisieren des Betragsfeldes folgendes Makro ausgelöst:
[code]
Dim strDBName, strSQL as String
Dim bTF as Boolean
objForm.updaterow()
strSQL = "UPDATE ""tbl_Ueberweisung"" SET ""Datum"" = " & "'" & date() & "'" & "WHERE ""ID"" = " & "'0'"
bTF = objStatement.execute(strSQL)
MsgBox bTF
objForm.reload
[/code]
Die Messagebox habe ich zu Debugzwecken eingesetzt: das Datum wird nämlich vom Formular nicht angezeigt. bTF steht auf "false" - es gibt aber keine Fehlermeldung und wenn ich die Datenbank öffne, steht das Datum in der Tabelle, wo es hingehört (warum dann also false??)
Auch ein manuelles Reload des Formulares bringt nichts - aktiviere ich allerdings den "Formular bearbeiten Modus" und gehe anschließend wieder in die Datenansicht, wird das Datum im entsprechenden Feld angezeigt. Merkwürdig, oder?
Vielleicht habe ich schon zuviel mit dem Formular herumexperimentiert, Datenbank-Anbindungen verändert etc....
Es sind halt meine ersten Gehversuche mit Base. Mit Access war ich schon deutlich weiter.
Nochmal: hast du vielleicht einen Link bzgl. "event.source.model"?