Preguntas de access

Soy más o menos nuevo en esto del manejo de access(por cierto, tengo Access 97), no le sé las "mañas" todavía, espero me pueda ayudar; tengo dos preguntas que ahorita me están sacando canas verdes:
1- Tengo varias tablas, pero al momento de relacionarlas, access por defecto me pone las relaciones en ambos extremos del tipo muchos a muchos, pero yo quiero cambiar ese tipo de relación, es decir, en un extremo decir cero o muchos y en el otro extremo poner por ejemplo "muchos". ¿Cómo puedo cambiar ese tipo de relación?
2-En una tabla tengo información de un producto, digamos una camisa, quiero que aparezca en la tabla información como nombre del producto, código, y una foto. Mi problema es con la foto, como la inserto (se que el campo debe de ser de tipo OLE), esa foto la tengo que tener en el mismo directorio donde esta la base de datos o al insertarla, ¿ya queda contenida en la tabla y puedo borrar la foto original? ¿Cómo la puedo visualizar después de insertarla?
Respuesta
1
A la primera pregunta te puedo decir que tienes mal la estructura de la base de datos, cuando access coloca que la relación es muchos a muchos no la puedes cambiar, lo que puedes hacer es sentarte y mirar como solucionas la fluencia de datos, es decir, cuanto tu tienes una bd solo puedes tener relaciones uno a muchos o uno a uno, y si tienes tablas con relaciones muchos a muchos, tienes que crear tablas auxiliares para que tus relaciones queden muchos a uno o uno a muchos así solucionaras este problema.
2. Tienes razón cuando trabajes con fotografías o cualquier tipo de archivo ajeno a access tienes que crear un campo de tipo OLE, luego insertas el objeto al campo, al hacerlo, el objeto queda enlazado a la bd, no la puedes borrar, en access XP la bd crea una replica del archivo de tal forma que puedes borrarlo, pero la verdad en access 97 no estoy segura, puedes probarlo añadiendo una foto y luego borrandola de la carpeta, y probar si sigue el vinculo.
Puedes visualizarla, creando un formulario basado en esa tabla en el formulario se mostrara lka foto más no el vinculo.

3 respuestas más de otros expertos

Respuesta
1
Vamos por la primera:
Abre la consulta en formato diseño...
Sitúa el cursor encima de la línea de relaciones y haz click con el botón secundario del mouse... aparecen dos opciones.. Propiedades de la combinación y Eliminar... Haz click sobre Propiedades de la combinación... te aparece un formulario con tres opciones... 1) Incluir únicamente los registros de las dos tablas donde el campo combinado sea igual 2)Incluir TODOS los registros de la tabla 1 y únicamente los registros de la tabla 2 donde el campo combinatorio sea igual y 3)Incluir TODOS los registros de la tabla 2 y únicamente los registros de la tabla 1 donde el campo combinatorio sea igual
Únicamente debes seleccionar la que más te interese.
Y ahora la segunda:
Yo no guardaría la foto en la propia base de datos... vas a provocar que crezca desmesuradamente en tamaño.. cuando guardamos una imagen insertada el tamaño de la propia imagen se duplica en la base de datos... lo que deberías hacer (creo yo!) Es crearte una carpeta donde se guardarían todas las imágenes y guardar en el registro la ruta y nombre de la imagen asociada.
Para visualizarla en el formulario debes agregar un control llamado Picture... en el evento AlActivarRegistro del formulario deberías escribir el siguiente código:
If CurrentRecord>RecordSetClone.Recordcount then
'Se trata de un nuevo registro...
Picture1.picture=""
Else
Picture1.Picture=Nombre del campo que tiene la ruta y nombre de la imagen
End If
Espero haberte sido de utilidad...
Saludos.
Jordi Pérez i Madern
Mataró (Barcelona)
Respuesta
1
No puedes cambiar el tipo de relación de a lo que tu quieras, Access lo fija dependiendo de las claves de las tablas relacionadas. Poondre ejemplos que es como mejor se ve:
Las dos tablas se relacionan de clave a clave = Access creara una relación de 1 a 1
Una de las tablas se relaciona mediante su clave, con un campo no clave de la otra = Access creara una relación de 1 a varios (muchos como tu dices)
Las dos tablas se relacionan con campos que no son clave en ninguna de las dos = Access creara una relación Indeterminada.
Esos son los tres únicos tipos de relación que Access admite, no existe (en Access97) la relación de varios a varios.
Para insertar fotos en tu tabla, efectivamente el campo tiene que ser tipo OLE, y para llenarlo con una foto concreta, pulsa con el botón derecho del ratón en el campo y elige "Insertar Objeto". Te saldrá un cuadro de dialogo en el que te pedirá que indiques que objeto quieres insertar. Fíjate que no tiene porque ser una foto, puede ser casi cualquier cosa.
Y para ver la foto insertada, debes hacerlo a través de un formulario basado en la tabla. Pon en tu formulario un control OLEependiente (en la barra Access lo llama Marco de Objeto dependiente) y en su propiedad Datos, vinculalo al campo que acabas de crear antes de tipo OLE.
Respuesta
Perdón por el retraso, vacaciones
1.- No uso relaciones, me gusta controlar las integridades de las tablas por mi mismo, siento no poder ayudarte
2.- Tengo aplicación con fotos pero las guardo fuera de la aplicación y las inserto por código en un objeto independiente. Es más sencillo, por lo menos para mi, y ademas no cargo la base de datos con imágenes que suelen ocupar bastante, ya que las guarda en BMP.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas