Yeah I realise the way I set it out wasn't optimal, but the code I have written shouldn't be wrong?
Well, not wrong, but a lot of unnecessary code. And a couple of minor errors.
---------------------
Code:
DoCmd.OpenTable "tblTerrainRepairJobs", acViewNormal, acAdd
You don't have to open the table (and shouldn't) to do the insert (append).
---------------------
Code:
Dim CustomerString, SiteString As String
Here you declared CustomerString as a Variant and SiteString as a string
---------------------
Code:
DoCmd.GoToRecord acDataTable, "tblTerrainRepairJobs", acNewRec
This line is unnecessary as the SQL insert command creates a new record. You will probably end up with empty records using the above line.
---------------------
Code:
DoCmd.RunSQL StrSQL
"DoCmd.RunSQL" is executed through Access and pops up warning messages unless you turn the messages off. I don't like turning messages off.
"Currentdb.Execute" runs through Jet, the database engine. It won't popup error messages unless you use the argument "dbfailonerror".
---------------------
Code:
'DoCmd.Close acTable, "tblTerrainRepairJobs", acSaveYes
I have never used this command; I believe it is for saving changes to the table structure, not saving changes to the data.
Good luck with your project....