You could use the following function to generate the SQL required to extract what you desire and then use .GetRows() from this. It uses ADO, so you'll need to add the reference to ADO. Based on the above you could use this to generate the INSERT INTO from (function return)
something like docmd.runsql "INSERT INTO tbl_TEST_Clone " & GEN_SQL_TABLE("tbl_test")
Option Explicit
Function GEN_SQL_TABLE(strTableName As String) As String
Dim r As New ADODB.Recordset
Dim rKeys As New ADODB.Recordset
Set r = CurrentProject.Connection.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, strTableName, Empty))
r.Filter = "[DATA_TYPE]<>" & adWChar
Set rKeys = CurrentProject.Connection.OpenSchema(adSchemaPrimaryKeys, _
Array(Empty, Empty, strTableName))
While Not r.EOF
If Not rKeys.BOF Then rKeys.MoveFirst
rKeys.Filter = "[COLUMN_NAME]='" & r.Fields("COLUMN_NAME").value & "'"
If rKeys.EOF Then
GEN_SQL_TABLE = _
GEN_SQL_TABLE & IIf(Len(GEN_SQL_TABLE) > 0, ",", "") & _
r.Fields("COLUMN_NAME").value
End If
rKeys.Filter=""
r.MoveNext
Wend
GEN_SQL_TABLE = "SELECT " & GEN_SQL_TABLE & " FROM " & strTableName
r.Close
rKeys.Close
Set r = Nothing
Set rKeys = Nothing
End Function
rs2.GetRows(). However, first you need to create correct recordset results based on SQL query where you can excludeID fieldand others ofText type.