It's a good idea to add Parameters for each value; then you don't need to worry about delimiting strings, and escaping "'" characters. Also, if you're using values the user has typed in, it avoids "SQL insertion" (adding ";" and extra SQL commands).
Sub AddCmdParams
' Parish,Street,Position,BarCode,Support,CType,Material,Protection,..
Cmd.AddParameter("Parish")
Cmd.AddParameter("Street")
...
then:
sSQL = "Update tblColumns Set "
Conn.BeginTransaction
sTmp = txtParish.Text ' get value from form textbox (or combo)
tblData.Cell("Parish",Row) = sTmp ' update table from form
sSQL = sSQL & "Parish=@Parish, "
Cmd.SetParameter("Parish",sTmp)
(repeat for additional fields; omit final comma!)
now add condition (primary key):
sTmp = " WHERE (UN_Unit='" & Unit_ID & "')"
sSQL = sSQL & sTmp
cmd.CommandText = sSQL
iTmp = Cmd.ExecuteNonQuery
If iTmp <> 1 Then Msgbox(iTmp & " records updated") ' should be only 1 record!
Conn.EndTransaction
I used panels to display and update groups of fields; the table control was in the background, and could be saved to a CSV file, as well as the database.