Hola experto, ante todo gracias por atenderme. Bien tengo una base de datos de usuarios, he creado una tabla para insertar usuarios y sus fotografías (Objeto OLE), mi pregunta es ¿cómo podría hacer para no tener que guardar la fotografía en la tabla para luego poder imprimirla en una ficha? Porque ya sabemos como se las gasta de espacio access con este tema y lo que aumenta en megas la base de datos. Me explico mejor:
Desde un formulario llamo a un informe que contiene sus datos y la fotografía, las fotografías las tengo en una carpeta del disco duro ¿qué método habría para no tener que insertar la foto del directorio en la tabla, o sea que el informe cogiera la foto del número de usuario que yo le dijera y se imprimiera?
Pues guardando en tu tabla la ruta de acceso a la foto y utilizando el método loadpicture para cargarla, si es en un informe, en el evento print del detalle del informe. Creo que así va bien.
Perdona pero no lo pillo, la tabla lo único que tiene es un campo y el tipo es un objeto ole y no sabría como decirle la ruta porque si insertas o vinculas ya engorda. En cuanto al método de loadpicture yo no lo veo en la ayuda de visual basic ¿me podrías ayudar un poco más? Gracias Me explico mejor: Tengo en un directorio fotografías, abro un formulario tabular con usuarios, al pinchar en el selector de registros ese registro ya lo tengo activo y mediante una consulta me sale el informe con todos sus datos, lo que quisiera es que ese informe me pillara la fotografía del directorio directamente y no tenerla que vincular en ninguna tabla.
Pues guarda en el campo (de tipo texto) la ruta de acceso al fichero gráfico para que en tu informe exista un control OLE al que con el método loadpicture le cargue la imagen. Private Sub Form_Click () Dim Msg as String ' Declara variables. On Error Resume Next ' Establece el tratamiento de errores. Height = 3990 Width = 4890 ' Define el alto y el ancho. Picture1.Picture = LoadPicture("PAPEL.CUR", vbLPCustom, vbLPColor, 32, 32) ' Carga un cursor. If Err Then Msg = "Imposible encontrar el archivo .cur." MsgBox Msg ' Presenta el mensaje de error. Exit Sub ' Sale si hay error. End If Msg = "Elija "Aceptar" para borrar el mapa de bits del cuadro de imagen." MsgBox Msg Picture1.Picture = LoadPicture() 'vacía el cuadro de imagen. End Sub LoadPicture (Función) Carga un gráfico en un objeto Picture, un control PictureBox o un control Image. Sintaxis LoadPicture([nombreArchivo], [tamaño], [profundidadColor],[x,y]) La sintaxis de la función LoadPicture consta de las siguientes partes: Parte Descripción NombreArchivo Opcional. Expresión de cadena que indica un nombre de archivo. Puede incluir carpetas y unidades. Si no se indica un nombre de archivo LoadPicture borra el control Image o PictureBox. Tamaño Tipo Variant opcional. Si nombreArchivo es un cursor o un archivo de icono, indica el tamaño de imagen deseado. ProfundidadColor Tipo Variant opcional. Si nombreArchivo es un archivo de cursor o icono, indica la profundidad de color deseada. Por Tipo Variant opcional, necesario si se usa y. Si nombreArchivo es un archivo de cursor o icono, indica el ancho deseado. En un archivo que contenga múltiples imágenes, se usa la mejor coincidencia si no hay disponible una imagen de ese tamaño. Los valores POR e y sólo se usan cuando profundidadColor es vbLPCustom. Para archivos de iconos 255 es el valor máximo. Y Tipo Variant opcional, necesario si se usa x. Si nombreArchivo es un archivo de cursor o icono, indica el alto deseado. En un archivo que contenga múltiples imágenes, se usa la mejor coincidencia si no hay disponible una imagen de ese tamaño. Para archivos de iconos 255 es el valor máximo. Valores Los valores para tamaño son: Constante Valor Descripción VbLPSmall 0 Icono pequeño del sistema. VbLPLarge 1 Icono grande del sistema, determinado por el controlador de vídeo. VbLPSmallShell 2 Tamaño del icono pequeño de Ayuda, determinado por el tamaño establecido para los títulos de los botones en la ficha Apariencia en el cuadro de diálogo Propiedades de la pantalla del Panel de control. VbLPLargeShell 3 Tamaño del icono grande de Ayuda, determinado por la ficha Apariencia en el cuadro de diálogo Propiedades de la pantalla del Panel de control. VbLPCustom 4 Tamaño predeterminado, valores proporcionados por los argumentos x e y Los valores para profundidadColor son: Constante Valor Descripción VbLPDefault 0 Mejor coincidencia si se usa el archivo especificado. VbLPMonochrome 1 2 colores. VbLPVGAColor 2 16 colores. VbLPColor 3 256 colores. Comentarios Los formatos gráficos reconocidos por Visual Basic incluyen archivos de mapas de bits (.bmp), archivos de iconos (.ico), archivos de cursor (. Cur), archivos de longitud codificada (. Rle), metarchivos (. Wmf), metarchivos mejorados (. Emf), archivos GIF (.gif) y archivos JPEG (.jpg). Es posible limpiar los gráficos de formularios, cuadros de imagen y controles de imagen si asigna LoadPicture sin argumentos. Para cargar gráficos para presentarlos en un control PictureBox, en un control Image o como fondo de un formulario, el valor devuelto por LoadPicture debe asignarse a la propiedad Picture del objeto en el que se quiere presentar la imagen. Por ejemplo: Set Picture = LoadPicture("FIESTA.BMP") Set Image1.Picture = LoadPicture("FIESTA.BMP") Para asignar un icono a un formulario, establezca el valor devuelto por la función LoadPicture a la propiedad Icon del objeto Form: Set Form1.Icon = LoadPicture("MIICONO.ICO") Los iconos también pueden asignarse a la propiedad DragIcon de todos los controles excepto los controles Timer y Menu. Por ejemplo: Set Command1.DragIcon = LoadPicture("MIICONO.ICO") Para cargar gráficos en el Portapapeles del sistema se usa LoadPicture de la forma siguiente: Clipboard.SetData LoadPicture("FIESTA.BMP")