'Funcion que utilizando ADO crea una tabla, campos e índices
'La funcion devuelve un valor Booleano y es necesario introducir la cadena
'que indique la ruta de la base.
'***************************************************************************
'Crea la tabla ...
Public Function CrearTbl(Ruta As String) As Boolean  'Ruta es  la ubicación de la BD sin su nombre...


  On Error GoTo PROC_ERR

  Dim cnn As New ADODB.Connection
  Dim objTbl As New Table
  Dim objCat As New ADOX.Catalog
  Dim objKey As New ADOX.Key
  Dim strConnection As String

  strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                  "Data Source=" & Ruta & "BD.mdb;" _
    & "Jet OLEDB:Database Password =1111111111;"

  cnn.Open strConnection

  Set objCat.ActiveConnection = cnn 'Cnn a la tabla...

  
  objTbl.Name = "NombreTabla"
  objTbl.Columns.Append "Campo1", adVarWChar
  objTbl.Columns("Campo1").Attributes = adColNullable    'Permite ingresar valores nulos...
  objTbl.Columns("Description").Attributes = adColNullable
  objCat.Tables.Append objTbl 'Añado de forma efectiva la tabla

  'Creo una clave primaria
  objKey.Name = "Campo1"
  objKey.Type = adKeyPrimary
  objKey.Columns.Append "Campo1"

  objTbl.Keys.Append objKey

  CrearTbl= True     'Si no hay errores retorna TRUE

  cnn.Close
  Set objKey = Nothing
  Set objTbl = Nothing
  Set objCat = Nothing
  Set cnn = Nothing

PROC_EXIT:
  On Error Resume Next
  'Limpia los objetos de memoria...
  Set objKey = Nothing
  Set objTbl = Nothing
  Set objCat = Nothing
  Set cnn = Nothing
  Exit Function

PROC_ERR:

  CrearTblListas = False
  Resume PROC_EXIT

End Function

'**********************************************************************
'**********************************************************************
'Otro ejemplo, este mas sencillo.
'Agregar un campo Autonumerico a una tabla ya existente (Y otros campos más)

Sub CreateAutoIncrColumn()

        Dim cat     As New ADOX.Catalog
        Dim tbl     As New ADOX.Table
        Dim col     As New ADOX.Column

    ' Abre el catálogo
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\MiRuta\MiBase.mdb;"

    With tbl
        .Name = "Clientes"
        Set .ParentCatalog = cat
        ' Crea los campos y los anexa 
        .Columns.Append "ClienteId", adInteger
        ' Convierte la columna ContactId en una columna de incremento automático
        .Columns("ClienteId").Properties("AutoIncrement") = True
        .Columns.Append "Cuenta", adVarWChar
        .Columns.Append "Nombre", adVarWChar
        .Columns.Append "Apellidos", adVarWChar
        .Columns.Append "Telefono", adVarWChar, 20
        .Columns.Append "Observaciones", adLongVarWChar
    End With

    cat.Tables.Append tbl

    Set cat = Nothing

End Sub

'**********************************************************************

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)