Pues vijeo hasta donde yo se para crear tablas mediante codigo en Acces tienes dos opciones :
1 . Necesitas implementar el codigo mediante la libreria ADOX pues esta es lenguage de definicion de datos el ADODB es un lenguage para manipulacion de datos.
ó
2. Si conoces lo suficientemente bien las sentencias SQL puedes escribir una que te cree una tabla.
Para mi ambos metodos tienen el mismo nivel de dificultad por asi decirlo pues, pero a mi me gusta mas utilizar el ADOX porque me parece mas estructurado.
Hola Tomas:
Yo tambien estoy de acuerdo con lo que te dice Cristian, uno de los mejores métodos para crear Tablas desde Visual Basic es con el Catálogo de ADOX.
En esta página te explican como crear una Tabla desde Visual Basic, usando la biblioteca de extensiones de ADO de nombre ADOX.
http://www.mvp-access.com/softjaen/
En la página principal y en el Menú "Acceso a Bases de Datos", pulsa sobre ADOX y luego pulsa sobre la Novena opción "Como crear una Tabla de Access".
Tienes que marcar en el Proyecto la Referencia: Microsoft ADO Ext. 2.x for DDL and Security
Si tienes algo de práctica en código de Visual Basic o VBA, no te será dificil.
ADODB es solo para la manipulacion de datos, no habra problemas si utilizo ADOX en mi programa? digo conflicto.... no me gustaria cambiar y me gusta trabajar con ADODB
No tiene porque haber ningún tipo de conflicto entre librerías, puedes usar tanto ADODB como ADOX en la misma aplicación y cada una cumplirá su función, además no tienes que cambiar, usa ADODB como hasta ahora para abrir conexiones y recorset con Bases de Access y ADOX para crear tablas, solo tienes que llamarlas al usarlas para evitar conflictos:
Con ADOX:
Dim cat As ADOX.Catalog
Dim tbl As ADOX. Table
Con ADODB:
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
etc.
Cuando se usan diferentes librerías con sus distintas referencias marcadas en la misma aplicación (Proyecto VB6 o VBA de Access), lo que nunca debes de hacer es esto:
con ADO:
Dim cnn As Connection
Dim rst As Recordset
o con DAO:
Dim Base As Database, sino Dim Base As DAO.Database
Dim rec As Recordset, sino Dim rec as DAO.Recordset
porque entonces es cuando entran en conflicto y te marca errores.
Así que tranquilo que no hay problema, ahora bien, tu decides.
Saludos
Enrique