Visual Basic - Relacionar tablas y otras cosas...

Life is soft - evento anual de software empresarial
 
Vista:

Relacionar tablas y otras cosas...

Publicado por nerio (9 intervenciones) el 09/12/2005 17:48:49
necesito relacionar unas tablas en access... he visto q aki la relacionan con una sentencia sql... mi pregunta es si no hace falta determinar los campos q iran relacionados en ambas tablas en access o es necesario relacionarlas primero en access para q la sentencia sql funcione.....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Relacionar tablas y otras cosas...

Publicado por Arnaldo (53 intervenciones) el 11/12/2005 15:23:24
Hola, si declaras las relaciones en Acces y definis integridad referencial para actualizar o eliminar, no es necesario que en la sentencia SQL declares la relacion entre ambas tablas. Ya que si eliminas un registro de una tabla que esta relacionado con un PK de otra tabla, tambien se eliminaran los resgistros de la otra tabla, a partir de la primera instruccion, sin ser necesario que abras las dos tablas. Pero si no declaras ninguna relacion en Acces, en la sentencia SQL podes hacerlo en cualquier instancia cuando actualices, elimines o simplemente realices consultas de registros. Y si es necesario que señales cual va a ser la union natural entre ambas tablas para que la sentencia SQL funcione. Podes probar en acces generando Consultas, sin tener establecidas las relaciones de las tablas, para ver que funciona tu consulta y despues pasara a VB. Tee mando un ejemplo de union natural.

Consulta sin declarar uniones, solo igualdad de campos para obtener los registros deceados. Las tablas se encuentran sin ningun tipo de relacion en Acces.

SELECT Director.ID, Director.Nombre, Maestros.Nombre
FROM Director, Maestros
WHERE Director.Nombre="carlos" AND Maestros.Nombre="carlos";

Un ejemplo de una consulta a varias tablas, creando uniones, entre ellas. Mantenes la integridad referencial necesaria para que la actualizacion de registros se realice de forma adecuada en todas las tablas.

SELECT Clientes.Empresa, Pozo.[Nombre del Pozo], Muestras.[Tipo de muestras], Muestras.[Fecha de Ingreso], Muestras.Ubicacion, Muestras.Objetivos, Muestras.[Procedencia de muestra], Muestras.[Existencia en deposito], tabformacion.NombreSigla

FROM tabformacion INNER JOIN ((Clientes INNER JOIN (Pozo INNER JOIN Muestras ON Pozo.[Nro Pozo] = Muestras.[Nro de Pozo]) ON Clientes.[Nro de Cliente] = Pozo.[nro cliente]) INNER JOIN [Formacion de Pozos] ON Pozo.[Nro Pozo] = [Formacion de Pozos].[ID Pozo]) ON tabformacion.forID = [Formacion de Pozos].[ID Formacion]

ORDER BY Pozo.[Nombre del Pozo];

Bueno espero haberme expresado bien y que te haya servido algo de lo tipeado. Suerte..!!!

Arnaldo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar