Si se puede, utilizando ADOX. Antes que nada tienes que hacer las siguientes referencias: Microsoft ADO Ext. 2.6 for DDL and Security Microsoft Jet and Replication Objects 2.6 Library El código es el siguiente: (Puedes ponerlo por ejemplo en un botón) Dim C as ADOX.Catalog C.Create "Provider=" & cboProvider.Text & ";" & _ "Data Source=" & txtNombreBase & ";" Y listo. En el ejemplo se supone que tenemos un combo para elegir el proveedor, y un textbox en el que ingresamos el nombre y el path de la base de datos. Para crear las tablas: Dim C as New ADOX.Catalog Dim T as New ADOX.Table ' Abrir el catálogo C.ActiveConnection = _ "Provider=" & cboProvider.Text & ";" & _ "Data Source=" & txtNombreBase & ";" 'crear la tabla With T .Name = txtNombreTabla.Text . 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 "Direccion", adVarChar, 50 Else ' Para Access 2000 .Columns.Append "Nombre", adVarWChar, 50 ' Una cadena de 50 caracteres .Columns.Append "Direccion", adVarWChar, 50 End If .Columns("Nombre").Attributes = adColNullable ' Permite contener nulos .Columns("Direccion").Attributes = adColNullable End With 'Añadir la tabla a la BD C.Tables.Append T Eso es todo.