Resumen Campo ole en Acces

Mensaje enviado por "Gustavo A. Heusdens" <gheusden@interserver.com.ar>

Hola!Suso

Para hacer lo que quieres tenés que crear un campo en la base de datos, y unas cuantas líneas en Visual Basic.


1. Base de Datos

Crear o usar un campo Objeto OLE. Los campos del tipo Objeto OLE se utilizan para almacenar datos, como documentos Word o Excel, imágenes, sonido y en general, otros tipos de datos binarios creados en otros programas. En Visual Basic el tipo corresponde a la constante dbLongBinary.

Existen dos maneras de almacenar datos en un campo Objeto OLE, Insertar y Vincular.
Cuando se inserta una imagen forma parte del archivo de base de datos, a diferencia de Vinculados, en donde solo se guarda una referencia al objeto.

2. Visual Basic

Si propósito es visualizar rápidamente las imágenes y agregar datos de la manera más sencilla posible. Para visualizar la imagen se puede utilizar un PictureBox vinculado a un control Data. Simplemente la Propiedad DataSource es el Control Data interfaz DAO de la tabla o consulta de la Bases de Datos, y la propiedad DataField es el nombre del campo Objeto OLE.

Para almacenar las imágenes yo utilizo las capacidades Arrastrar y Soltar (Drag and Drop) de Windows. Es decir, desde elt Explorer, se arrastra el nombre del archivo y se suelta sobre el PictureBox vinculado al Campo.
Cuando se archive el registro (deplazándose hacia otro registro o usando un comando Actualizar), la imagen quedará guardada en la Base de Datos. Para implementar la capacidad de Arrastrar y Soltar, se necesitan dos pasos sencillos: Primero, fijar la propiedad OLEDropMode = 1 (Manual) del PictureBox. Segundo estas líneas de código en el evento OLEDragDrop:

    Prívate Sub Picture1_OLEDragDrop(Data As DataObject, _
                Effect As Long, Button As Integer, _
                Shift As Integer, x As Single, Y As Single _
                )
        '//DataObject contiene datos de tipo vbCFFiles
        On Error Resume Next
        Set Picture1.Picture = LoadPicture(Data.Files(1))
    End Sub

Trata de usar gráficos GIF o JPG en vez de BMP ya que reducirá dramáticamente el espacio empleado en la base de datos sin perder calidad. Para fotografías de alta calidad el formato JPG es el ideal.


Llevar la Imagen de la Base de Datos a un Archivo

Si queres llevar una imagen almacenada en la base de datos a un archivo, simplemente usa la instrucción SavePicture de Visual Basic, aplicada al PictureBox asociado a la imagen: SavePicture miPictureBox.Picture, NombreDeArchivo

Si un gráfico se cargó en la propiedad Picture de un objeto desde un archivo, ya sea en tiempo de diseño o en tiempo de ejecución, y es un mapa de bits, un icono, un metarchivo o un metarchivo mejorado, se guarda con el mismo formato que el archivo original. Si se trata de un archivo GIF o JPEG, SavePicture lo guardará como un archivo de mapa de bits. Los gráficos de la propiedad Image siempre se guardan como archivos de mapas de bits (.BMP), cualquiera que sea su formato original. Use SavePicture miPicture.Image, NombreDeArchivo para archivar gráficos creados con Métodos Gráficos. Por otra parte, la base de datos almacena en formato original del archivo de imagen.


Espero que te sea útil



Gustavo



>=====================
>----- Original Message -----
>From: suso <jlcubas@retemail.es>
>To: <vb-esp@ccc.uba.ar>
>Sent: Saturday, January 15, 2000 3:26 AM
>Subject: vb-esp : campo ole en Acces
>
>
> > Hola a todos otra vez...aqui les traigo otra pregunta....:)
> > Ya se que puede parecer una pregunta tonta..pero..como puedo..si es que
se
> > puede (porque lo he leido en algun sitio que se puede añadir un campo
OLE
>a
> > una base de datos de Access..por mas que lo he buscado..en ningun sitio
lo
> > dice..ya que en el diseñador de bases de datos de VB no viene ningun
campo
> > que se llame OLE...lo necesito porque quiero almacenar una imagen en ese
> > campo para despues pasarla al un picture o similar, retocarla un
> > poquito..no mucho..y si fuera posible darle un zoom ya que l aimagen no
> > puede aparecer toda de golpe. ya que le tengo que poner barras de scroll
> > vertical y/o horizontal...para poder ver mejor algunas partes de esa
> > imagen...guardarla otra vez..si hay una manera mas sencilla..como
>guardarla
> > en un campo memo o algo..pero el caso es que solo la guarda en BMP..con
lo
> > que la base engordaria mucho acausa de estos graficos en BMP..ya que mi
> > intencion es guardarla en jpg o similar..gracias por adelantado a
>todos..y
> > perdonad por daros la vara otra vez...
> >
> > Un saludo
> > Suso
> > jlcubas@retemail.es
> > Islas Canarias
> > España




Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com