So there are two aspects to my question. Firstly, why try to use UpDateSQL in the first place. I am converting an existing VB6 program that uses Access 2003 database. Since that program has been working for many years I did not wish to do a full re-design and re-coding unless it became absolutely necessary. In Access it is an easy task to open a recordset then edit records as one moves through that recordset forwards (or backwards). When done commit those changes or roll back. I was trying to follow that logic and UpDateSQL seemed like a way to do that.
Additional queries like, for example, UpdateSQL must not contain parameters that are not present in the main query (SQL property).
But you can use parameters with field names, then the value of the specified field from the current record will be automatically inserted in those places. you will get the original value of that field by prefixing the field name with OLD_.
Thank you for this it might be the missing explanation and perhaps is the reason why I can't use UpDateSQL in the way I hoped to. However, it seems to me that if the parameters can only apply values from the original query result then the process is largely useless. Perhaps I mis-understand, but I thought the whole point of parameters was to put a different value into the SQL, that is different to what is already there in the resultant dataset.
And for all that is holy: Don't separate Date from Time
....and be careful with SQLite's "Date"-Function, especially using "now" --> it returns UTC. Not your local Date/Time
Both point noted. I was copying my previous database structure and since Sqlite can only store date/time as text I figured that keeping them separate makes tests and comparisons easier?
Moving to the second aspect, alternative ways to achieve the desired updates, I am grateful for your suggestions.
@Zvoni I had not thought of using a view and I can see how it would work.
@Gan temporary table, yes indeed. I did use this approach when I was converting the MA Access database to SQLite because there was a data mis match between Access and SQLite. It worked well.
I have thought about how to move forward and I will probably use the recordset from my joined query to populate a TStringArray and then I can run a simple Update query on table Times rather like the suggested code by @Zvoni.
Since I now have a better idea of what caused the Parameter Not Found and ideas of alternative approaches I will mark this thread as solved.
Thank you all