Hola! Sé que con los objetos DAO se pueden crear tablas, indices, campos... ¿Se puede hacer lo mismo utilizando los objetos ADO o sólo sirven para acceder a una base de datos cuya estructura ye se encuentra definida? Desde ya muchas gracias!
Sí se puede hacer.. te envío un ejemplillo: Para poder crear una base de datos, desde Visual Basic, usando ADO (ActiveX Data Objects), tenemos que crear en nuestro proyecto una referencia a: Microsoft ADO Ext. 2.6 for DDL and Security (msadox.dll), y crear un objeto del tipo Catalog. Nota: Esta referencia es para la versión 2.6 de ADO, por tanto puede ser que, si la versión que tienes instalada es otra, en lugar de 2.6 aparezca otra numeración. ADOX sólo está disponible a partir de la versión 2.1 de ADO. Crear una tabla con ado... Dim cat As ADOX.Catalog Dim tbl As ADOX.Table ' Set cat = New ADOX.Catalog Set tbl = New ADOX.Table ' ' Abrir el catálogo cat.ActiveConnection = _ "Provider=" & cboProvider.Text & ";" & _ "Data Source=" & txtNombreBase.Text & ";" ' ' Crear la nueva tabla With tbl .Name = txtNombreTabla.Text ' Crear los campos y añadirlos a la tabla. ' Esto hay que hacerlo antes de añadir la tabla a la colección de tablas .Columns.Append "ID", adInteger ' Dependiendo del tipo de proveedor, los datos de cadena serán de un tipo u otro If cboProvider.Text = "Microsoft.Jet.OLEDB.3.51" Then ' Para Access 97 .Columns.Append "Nombre", adVarChar, 50 ' Una cadena de 50 caracteres .Columns.Append "email", adVarChar, 100 .Columns.Append "Telefono", adVarChar .Columns.Append "Observaciones", adLongVarChar ' Una cadena larga, (Memo) Else ' Para Access 2000 .Columns.Append "Nombre", adVarWChar, 50 ' Una cadena de 50 caracteres .Columns.Append "email", adVarWChar, 100 .Columns.Append "Telefono", adVarWChar .Columns.Append "Observaciones", adLongVarWChar ' Una cadena larga, (Memo) End If .Columns("Nombre").Attributes = adColNullable ' Permite contener nulos .Columns("email").Attributes = adColNullable .Columns("Telefono").Attributes = adColNullable .Columns("Observaciones").Attributes = adColNullable End With ' ' Añadir la nueva tabla a la base de datos cat.Tables.Append tbl ' Set tbl = Nothing Set cat = Nothing En este ejemplo, tenemos que tener asignadas las variables sProvider (el proveedor), sNombreBase (el nombre y path de la base de datos) y sNombreTabla para el nombre de la tabla. Para una base de datos del tipo Access 97, sProvider = "Microsoft.Jet.OLEDB.3.51" Para una base de datos del tipo Access 2000, sProvider = "Microsoft.Jet.OLEDB.4.0"