'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
'**********************************************************************
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)