Public Sub CrearTabla()
Dim miDB As DAO.Database
Dim miTabla As TableDef, miCampo As Field, miÍndice As Index
Dim NombreTabla As String
Set miDB = CurrentDb
NombreTabla = Me.txtNombreParaLaTabla
DoCmd.Close acTable, NombreTabla, acSaveNo 'Por si ya existe y está abierta
miDB.TableDefs.Delete NombreTabla 'Por si ya existe
Set miTabla = miDB.CreateTableDef(NombreTabla)
With miTabla
'Añadimos campos
'Si se quiere añadir un Id autonumérico
.Fields.Append .CreateField("Id", dbLong)
Set miCampo = .Fields!ID
miCampo.Attributes = dbAutoIncrField
'El resto de los campos
.Fields.Append .CreateField("Nombre del campo", TipoDelCampo, TamañoDelCampo)
'Tipo de campo: dbText para texto, dbInteger para entero, etc.
'Repetimos para el resto de campos
'Añadimos índices
'Para la clave principal
Set miÍndice = .CreateIndex("PrimaryKey")
miÍndice.Fields.Append .CreateField("Id")
With miÍndice
.Primary = True
End With
.Indexes.Append miÍndice
Set miÍndice = .CreateIndex("NombreDelÍndice")
miÍndice.Fields.Append .CreateField("NombreDelCampo")
.Indexes.Append miÍndice
'Repetimos para el resto de los índices
End With
'Añadimos la tabla a la colección
miDB.TableDefs.Append miTabla
'Vaciamos las variablees de objeto
Set miDB = Nothing
Set miTabla = Nothing
Set miÍndice = Nothing
Set miCampo = Nothing
End Sub