Sub CopiarEstructuraTabla()
Dim db As Database
Dim tblDef As TableDef
Dim newTblDef As TableDef
Dim fld As Field
Dim idx As Index
Dim newIdx As Index
' Nombre de la tabla original y nueva
Dim nombreTablaOriginal As String
Dim nombreNuevaTabla As String
nombreTablaOriginal = "NombreTablaOriginal"
nombreNuevaTabla = "NombreNuevaTabla"
' Abrir la base de datos
Set db = CurrentDb()
' Obtener la definición de la tabla original
Set tblDef = db.TableDefs(nombreTablaOriginal)
' Crear una nueva tabla con la misma estructura
Set newTblDef = db.CreateTableDef(nombreNuevaTabla)
For Each fld In tblDef.Fields
' Agregar los campos a la nueva tabla
newTblDef.Fields.Append newTblDef.CreateField(fld.Name, fld.Type, fld.Size)
Next fld
' Agregar la nueva tabla a la base de datos
db.TableDefs.Append newTblDef
' Recorrer los índices de la tabla original y copiarlos
For Each idx In tblDef.Indexes
' Crear un nuevo índice en la nueva tabla
Set newIdx = newTblDef.CreateIndex(idx.Name)
newIdx.Primary = idx.Primary
newIdx.Unique = idx.Unique
For Each fld In idx.Fields
newIdx.Fields.Append newIdx.CreateField(fld.Name)
Next fld
' Agregar el nuevo índice a la nueva tabla
newTblDef.Indexes.Append newIdx
Next idx
' Actualizar y guardar la nueva tabla
db.TableDefs.Refresh
db.TableDefs(nombreNuevaTabla).Refresh
' Liberar recursos
Set newIdx = Nothing
Set newTblDef = Nothing
Set tblDef = Nothing
Set db = Nothing
MsgBox "La estructura de la tabla se ha copiado correctamente.", vbInformation
End Sub