The way I would do this is with Link and Append. But you don't need to change or store the Append query. Create a table like this:
tblClientFormat
ClientFormatID (PK Autonumber)
ClientID
SourceColumn
ColumnOrder
Then you have a form with a combo to select the client and a button to run the import.
Dim DB AS DAO.Database, rs AS Recordset
Dim strSQL As String, strSQL1 As String
SET db AS CurrentDB()
DoCmd,TransferSpreadsheet acLink, acSpreadsheetTypeExcel12, "importTable", "C:\test\test.xlsx", ", True
strSQL = "INSERT INTO tablename (field1, field2, field3,...) "
strSQL1 = "SELECT SourceColumn FROM tblClientFormat WHERE ClientID = " & Me.cboClient & _
" ORDER BY ColumnOrder;"
SET rs as db.OpenRecordset(strSQL1)
strSQL1 = "SELECT "
With rs
.MoveFirst
Do While NOT .EOF
strSQL1 = strSQL1 & .fields("SourceColumn") & ", "
.MoveNext
Loop
End With
strSQL1 = Left(strSQL1,Len(strSQL1)-2) & " FROM importable;"
CurrentDB.Execute strSQL, dbFailOnError
Note: this is untested code off the top of my head but should give you the idea. It will generate an Append query taking the column names from the spreadsheet and appending them to the matching column in your table. There will be no need to modify the table
eliminating columns and changing column names. Just maintain tblClientformat so it matches the spreadsheet.