Crear tablas con "create table" (access SQL)

Estoy intentado crear dos tablas (tCONDUCTORES y tVEHICULOS) en access 2010 con una relación varios a varios con VBA y la clausula "create table". Por el tipo de relación entre las dos tablas principales necesito crear una tabla intermedia (tpCONDUCT_VEHICULOS) para conseguir la relación varios a varios entre las tablas principales, creando relaciones uno a varios con cada una.

El código que estoy utilizando es el siguiente:

Db.Execute "CREATE TABLE tCONDUCTORES " _
& "(destino CHAR(15), usuario CHAR(10), empleo CHAR(5), nombre CHAR(50), foto CHAR(50), tfno CHAR(10), mail CHAR(50), condicion CHAR(8), " _
& "DNItitular CHAR(15) CONSTRAINT MyFieldConstraint " _
& "PRIMARY KEY);"
db.Execute "CREATE TABLE tVEHICULOS " _
& "(tipoVehiculo CHAR(15), marca CHAR(15), modelo CHAR(20), color CHAR(20), destino CHAR(15), " _
& "matricula CHAR(10) CONSTRAINT MyFieldConstraint " _
& "PRIMARY KEY);"
db.Execute "CREATE TABLE tpCONDUCT_VEHICULOS " _
& "(DNItitular CHAR(15) REFERENCES tConductores (DNItitular) CONSTRAINT MyFieldConstraint PRIMARY KEY, " _
& "matricula CHAR(10) REFERENCES tVEHICULOS (matricula) CONSTRAINT MyFieldConstraint " _
& "FOREIGN KEY);"

El problema que estoy teniendo es que después de crear las dos tablas principales con sus respectivas claves PRIMARIAS (hasta ahí sin pegas), me pierdo en la sintaxis al intentar crear la tabla intermedia con dos campos clave para y sus respectivas relaciones (me salta error en la clausula CONSTRAINT).

¿Cómo debería escribirlo?

1 respuesta

Respuesta
1

A ver si esto te funciona:

...

Db.Execute "CREATE TABLE tCONDUCTORES " _
& "(destino CHAR(15), usuario CHAR(10), empleo CHAR(5), nombre CHAR(50), foto CHAR(50), tfno CHAR(10), mail CHAR(50), condicion CHAR(8), " _
& "DNItitular CHAR(15) CONSTRAINT MyFieldConstraint " _
& "PRIMARY KEY);"

db.Execute "CREATE TABLE tVEHICULOS " _
& "(tipoVehiculo CHAR(15), marca CHAR(15), modelo CHAR(20), color CHAR(20), destino CHAR(15), " _
& "matricula CHAR(10) CONSTRAINT MyFieldConstraint " _
& "PRIMARY KEY);"

db.Execute "CREATE TABLE tpCONDUCT_VEHICULOS" _
& "(Id COUNTER(1,1) CONSTRAINT miClave PRIMARY KEY," _
& "DNItitular CHAR(15), " _
& "matricula CHAR(10)," _
& "CONSTRAINT miClaveExtDNI FOREIGN KEY (DNItitular) REFERENCES tCONDUCTORES (DNItitular)," _
& "CONSTRAINT miClaveExtMatr FOREIGN KEY (matricula) REFERENCES tVEHICULOS (matricula))"

...

¡Gracias! Ha funcionado a la perfección, muchísimas gracias por tu ayuda.

Me alegro de que te haya funcionado :-)

Te ruego que valores la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas