Kioskea
Recherche
Haz una pregunta Denunciar

Ver imagenes en Visual Basic

MARRDU - Última respuesta el 25 mar 2013, 20:45
Hola,
por favor necesito su ayuda ya no puedo mas he tratado de hacerlo y no sale.mi pregunta es tengo un formulario en visual basic 6.o he creado una base de datos y alli pongo un campo llamdo foto y lo he llenado con una imagen.Ahora como hago para visualizarlo en mi formulario creado en visual. tengo un data grid alli con todos los datos pero no me visualiza la foto que inserte en la base de datos creada en access.ayudenme por favor.
Seguir leyendo 
Respuesta
+71
moins plus
Hola aquí te dejo un pequeño programa que trabaja ADO sin el CONTROL, puro código.
En -->proyecto -->referencias ... tildas --->Microsoft ActiveX Data Objects 2.0 Library
En -->Proyecto -->Componentes ... tildas ---> Microsoft Common Dialog Control 6.0 (SP3)
En el formulario agregas:...
Tres textbox, un pictureboxd y 8 commandbutton
les pones los siguientes caption:...
------------------------------------------
Command1.caption ="Inicio"
Command2.caption ="Anterior"
Command3.caption ="Siguiente"
Command4.caption ="Final"
Command5.caption ="Nuevo"
Command6.caption ="Borrar"
Command7.caption ="Cargar Imagen"
Command8.caption ="Editar"
------------------------------------------
En la carpeta en la cual pongas el proyecto crea una sub carpeta "imagenes"
------------------------------------------
La base de datos access, deberá tener una tabla denominada "Tabla1" y por lo menos cuatro campos
1 ---> Apellido
2 ---> Nombres
3 ---> Mail
4 ---> Foto
------------------------------------------

Mas abajo te dejo el código del formulario
------------------------------------------------
Pero antes deseo decirte me parece que esta es la mejor manera de manejarse con fotos, es decir, guardando en la base solamente el texto del path con el nombre y la extensión de la imagen, a mas de que las vas nucleando todas en un directorio puntual, y de esta manera la base de datos no se sobredimensiona y funcionará perfectamente con pocos archivos como con una multitud.-
------------------------------------------
Bueno antes de dejarte el código, te manifiesto que no dudes en consultarme cualquier inquietud que tengas.

Gracias un abrazo.

Luis
------------------------------------------

Ahora el código explicado:
------------------------------------------
Option Explicit
' Objeto para acceder directamente a la base usando código
Private cnn As ADODB.Connection
' WithEvents permite tener acceso a los a los mismos eventos que con el ADO DataControl
Private WithEvents rst As ADODB.Recordset
'variable para la función -cargar_Imagen-
Private foto As IPictureDisp
'variable que se utiliza en el evento de crear un nuevo registro
Dim nuevo As Boolean

Private Sub Command1_Click()
On Error Resume Next
rst.MoveFirst
Call cargar_Imagen(Picture1, rst!foto)
End Sub

Private Sub Command2_Click()
On Error Resume Next
rst.MovePrevious
'Si se sobrepasa el inicio de la base, se mueve el puntero al primer registro
If rst.BOF Then
rst.MoveFirst
End If
Call cargar_Imagen(Picture1, rst!foto)
End Sub

Private Sub Command3_Click()
On Error Resume Next
rst.MoveNext
'Si se sobrepasa el final de la base, se mueve el puntero al ultimo registro
If rst.EOF Then
rst.MoveLast
End If
Call cargar_Imagen(Picture1, rst!foto)
End Sub

Private Sub Command4_Click()
On Error Resume Next
rst.MoveLast
Call cargar_Imagen(Picture1, rst!foto)
End Sub

Private Sub Command5_Click()
On Error Resume Next
'Si se presiona este comando se autoriza un nuevo registro
'Se mueve el foco al text 1
'la variable boolean nuevo se pone a True
'Se renombra el caption del comando Nuevo
'Se hace visible el comando -cargar imagen-

If nuevo = False Then
rst.AddNew
Text1.SetFocus
nuevo = True
Command5.Caption = "Grabar nuevo"
Command7.Visible = True
ocultarcontroles False
Else
Command5.Caption = "Nuevo"
Command7.Visible = False
nuevo = False
rst.Update
mostrarcontroles False
End If
End Sub

Private Sub Command6_Click()
On Error Resume Next
' Elimina el registro actual
rst.Delete
On Error Resume Next
' Mueve el puntero al siguiente registro
rst.MoveNext
' Si no puede mover al siguiente, se posiciona en el primer registro.
If rst.EOF Then
rst.MoveFirst
End If
End Sub

Private Sub Command7_Click()
On Error Resume Next
With CommonDialog1
.DialogTitle = " Seleccionar imagen"
.Filter = "BMP|*.bmp|JPEG|*.jpeg|GIF|*.gif|JPG|*.jpg|Todos|*.*"
.ShowOpen
If .FileName = "" Then
Exit Sub
Else
'Carga en nombre el path donde se ejecuta el programa, el directorio especificado
'y el nombre y la extensión de la imagen seleccionada.
Dim nombre As String: nombre = App.Path & "\imagenes\" & .FileTitle
'Copia la imagen seleccionada en el cuadro de dialogo en el lugar que dice la variable -nombre-
Call FileCopy(CommonDialog1.FileName, nombre)
'actualiza el campo -foto- con el valor de la variable -nombre-
rst!foto = nombre
'actualiza el picture1 con la nueva imagen seleccionada.
Call cargar_Imagen(Picture1, nombre)
End If
End With
End Sub

Private Sub Command8_Click()
On Error Resume Next
If Command7.Visible = False Then
Command7.Visible = True
Command8.Caption = "Grabar cambios"
ocultarcontroles True
Else
' Guardar el contenido de las cajas de texto
With rst
.Fields("Apellido") = Text1
.Fields("Nombres") = Text2
.Fields("Mail") = Text3
.Update
End With
Command8.Caption = "Editar"
Command7.Visible = False
mostrarcontroles True
End If
End Sub

Private Sub Form_Load()
On Error Resume Next
' Asignar el nombre de la base de datos
' (si la aplicación se ejecuta en el directorio raiz, quitar el \)
Dim sBase
sBase = App.Path & "\fotos.mdb"
' Crear los objetos
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBase
rst.Open "SELECT * FROM Tabla1", cnn, adOpenDynamic, adLockOptimistic

' Conectar manualmente los Text1 al recordset
' Asignar el recordset al que estarán los datos conectados
' Esto funciona igual que si se conectaran a un DataControl,
' Por tanto no hay que preocuparse de actualizar el contenido, etc.
Set Text1.DataSource = rst
Set Text2.DataSource = rst
Set Text3.DataSource = rst
' Asiganr los nombres de los campos
Text1.DataField = "Apellido"
Text2.DataField = "Nombres"
Text3.DataField = "Mail"
rst.MoveFirst
Call cargar_Imagen(Picture1, rst!foto)
End Sub

Private Sub Form_Unload(Cancel As Integer)
On Local Error Resume Next
rst.Close
cnn.Close

Set rst = Nothing
Set cnn = Nothing

End Sub

Sub cargar_Imagen(Objeto As Object, Path_Foto As String)
On Error Resume Next
Dim Pos_x As Single
Dim Pos_y As Single
Dim Anchoimagen As Single
Dim Altoimagen As Single
Dim Anchoobjeto As Single
Dim Altoobjeto As Single

Dim escalaoriginal As Single
Set foto = LoadPicture(Path_Foto)

With Objeto
.AutoRedraw = True
.Cls
escalaoriginal = .ScaleMode
.ScaleMode = vbPixels

Anchoimagen = .ScaleX(foto.Width, vbHimetric, vbPixels)
Altoimagen = .ScaleY(foto.Height, vbHimetric, vbPixels)

Anchoobjeto = .ScaleWidth
Altoobjeto = .ScaleHeight

If Anchoimagen > Anchoobjeto Then
Anchoimagen = Anchoimagen - (Anchoimagen - Anchoobjeto)
Altoimagen = Altoobjeto
End If

If Altoimagen > Altoobjeto Then
Altoimagen = Altoimagen - (Altoimagen - Altoobjeto)
Anchoimagen = Anchoobjeto - (Anchoimagen - Anchoobjeto)
End If

Pos_x = (Anchoobjeto - Anchoimagen) / 2
Pos_y = (Altoobjeto - Altoimagen) / 2

End With
Objeto.PaintPicture foto, Pos_x, Pos_y, Anchoimagen, Altoimagen
Objeto.ScaleMode = escalaoriginal
End Sub

Sub mostrarcontroles(control As Boolean)
Text1.Enabled = False
Text2.Enabled = False
Text3.Enabled = False
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
If control = True Then
Command5.Enabled = True
Else
Command8.Enabled = True
End If
Command6.Enabled = True
End Sub

Sub ocultarcontroles(control As Boolean)
Text1.Enabled = True
Text2.Enabled = True
Text3.Enabled = True
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
If control = True Then
Command5.Enabled = False
Else
Command8.Enabled = False
End If
Command6.Enabled = False
End Sub

---------------------------------------
3xpert0s sin programacion- 17 jun 2011, 05:26
Hola por loq ue veo no entiendo casi nada del codigo pero eres muy bueno, el dia de hoy tome esta iniciativa para la creacion de codigos y pronto le entendere. Tengo que realizar un programa para el control de biblioteca con almenos tres modulos, el primero de elllos llamado CATALOGACION, el segundo PRESTAMOS y un tercero dedominado BAJAS:el primero de ellos clasifica y anexa elmaterial bibliografico y el segundo clasifica y controla los tipos de prestamos en este caso son , alumnos, docentes y externos con relacion de fechas a el personal que pidio el prestamo y el ultimocreo que es por demas escribir con detalle , pero no es mas que realizar baja los materiales bibliograficos que ya nose utilizan o menos consultados, en su defecto las ediciones mas viejas.... muy complejo para ser sencillo pero ese es mi objetivo la creacion o desarrolllo de uno similar, el MRC
Responder
leo- 6 jul 2011, 03:37
bakan al crear la imagen en acces que le pongo en tipo de datos???
Responder
flakyn- 21 oct 2011, 14:00
amigo este proyecto esta muy bueno. pero yo quisiera que al buscar por nombre o numero me mostrara la fotografia correspondiente. te agradesco de antemano la ayuda que pudieras brindar desde ya muchas gracias
Responder
darkmond- 26 nov 2011, 17:52
ola amigo tengo un problemilla con mi base de datos esq enlace una base de datos a un formulario de Visual Basic 6.0 pero cuando muevo de lugar mi proyecto la base de datos no me la muestra como le hago para que la dirreccion de la base de datos se adapte a la unidad o lugar donde la quiera poner agradeceria me pudieras ayudar lo mas pronto posible
Responder
ani- 12 ene 2012, 06:44
El lugar donde nuevamente copiastes la base de datos osea en una maquina diferente, esa maquina te da una direccion de destino copia esa direccion que la puedes ubicar en la barra de direcciones de tu computadora y la copias, luego la pegas en la direccion en visual basic cuando te da esos problema de carga te dice una direccion y un admin de la anterior computadora entonces borra la direccion y le pegas ladireccion nueva de tu pc.
Responder
Deja tu comentario
Respuesta
+9
moins plus
Hola mi problema es el siguiente necesitaria hacer tipo una enciclopedia en visual basic nada muy complicado sino que tenga un glosario de las cosas y cuando le hagas click en cada nombre se abra otra ventana con la informacion y una foto o mas de lo que representa
gracias
Deja tu comentario
Respuesta
+3
moins plus
Tengo solo una duda.....
el codigo me funciono....ta bien...pero no me muestra las imagenes q le asigno a cada persona.... y me gustaria saber si es necesario que en la base de datos valla de alguna manera especial o solo como objeto ole o que.......porfa...si alguien pudiera ayudarme.......



acabo de cacharrrrrrrrrrr.....en la base de datos tenia q guardarlo como texto nomas poh....
claro como objeto ole guarda la imagen no la ruta, entonces te crea duplicados y too un show....... es mejor asi....ooooooooooo vale...ahora voy a dejar la mansaca....jaaajajajajaj
Deja tu comentario
Respuesta
+3
moins plus
tengo un problema con el visual basic... cree un blc de notas pero en el solo puedo escribir la informacion y no puedo hacer que se guarde por favoor necesito ayuda :)
nigga- 28 may 2012, 14:26
tu mam se encuera
Responder
Deja tu comentario
Respuesta
+2
moins plus
Deja tu comentario
Respuesta
+2
moins plus
Si yo también te lo recomiendo, debes guardar únicamente la ruta de la imagen en la tabla. suerte
Fignodata- 22 nov 2011, 20:16
Si usas una tabla Access configurada al 97, Campo de la FOTO, en el diseño pones como tipo de datos ObjetoOLE. Cargas la imagen como un archivo Binarios Largos. Así te ahorrar espacio para crear una carpeta con la imágenes originales. Pues quedan insertadas en el archivo.
Responder
Deja tu comentario
Respuesta
+1
moins plus
Hola, primero que nada buenas tardes a todos.

La verdad es que el conocimiento que tiene Elinv es bastante bueno.

Pero no fue su conocimiento el que me animó a inscribirbe en esta pagina, sino la manera que tiene de compatirlo y sobre todo que es muy amable.


Asi que abusando tanto de su conocimiento y su amabilidad por aqui los estaré molestando con mis dudas mas adelante. Y claro está que si algo puedo aportar con gusto lo haré.
Deja tu comentario
Respuesta
+1
moins plus
saludos algun amigo q me pueda ayudar..
bueno la verdad me he alejado de la programacion en vb6.0
quisiera ver si me pueden ayudar hacer un proyecto..
el cual se trata de un sistema de votacion que trabaje con base de datos logicamente y que cada usuario solo pueda votar 1 vez.
Deja tu comentario
Respuesta
+1
moins plus
estais tan liados con los formularios y programas y botones..que les pasa...no podeis cambiar y ver como esta el mundo y a parte hambre guerras pobreza enfermedades....vamos amiguitos a ser buenos ..que nos espera el amor de dios ..no hay mas bello que aquello. nos unimos. aisssamio.30@hotmail.com
Deja tu comentario
Respuesta
+1
moins plus
lo quedebes hacer es text1.text="" en donde corresponda luego del click del boton.
saludos - cualquier duda... enviame correo a : martin_oro@yahoo.com.ar
Deja tu comentario
Respuesta
+1
moins plus
Deja tu comentario
Respuesta
+1
moins plus
AL AMIGO DE SUBIR UNA IMAGEN EN UNA BASE DE DATO:

En access debes declarar el campo de la foto como objeto OLEDB. Luego en Visual Basic, asegurate que el campo este enlazado al Data Control. Si no lo esta, pocha sobre el campo de la foto (el text box) y en la propiedad data field ponle el nombre de campo que corresponde a la foto y en datasource el data control correspondiente.

Pero, como subirla? Fácil. Agregas un control Common Dialog1: le pones un nombre. Yo le puse aqui "cd". Pones un control Image (yo lo llamo aqui "foto") Luego en un boton de comando pones el código siguiente:

cd.Action = 1
foto.Picture = LoadPicture(cd.FileName)
cd.Filter = "Imágenes|*.bmp;*.ico;*.JPEG;|Todos los archivos|*.*"


Prefiero el control Image1 por que es mas liviano que el Picture1 y, además, el control Image1 tiene la propiedad Stratch, que permite ajustar el cuadro al tamaño de la imagen
Deja tu comentario
Respuesta
+0
moins plus
Hola amigos .... tengo casi el mismo problema ... me ayudaria si me enviaras a mi tb los codigos mencionados ... que patudes la mia .. pero te lo agradeceria muchisimo ...


Mi correo es nanoknot@hotmail.com ... el mismo msn por si quieres agregarme para que te bombardee de preguntas ..ajaja


gracias !! hernan
Deja tu comentario
Respuesta
+0
moins plus
Amigo pedro muchas pero muchas gracias ... revisare tus codigos de fuentes y te pedire ayuda mas adelante .. porque estoy realizando un proyecto grande ... el problema es que yo no soy informatico y es primera vez que entro al mundo de visual basic. .. habia trabajado con C pero en no muchas aplicaciones para pc .. solo para microcontroladores que es un poco mas facil y solo aplicaciones pequeñas


adios y gracias ....
Deja tu comentario
Respuesta
+0
moins plus
Nesesito ayuda para hacer una clase de blo de notas que se guarde al cerrar alguien me puede ayudar aabf_sanin@hotmail.com
super noob- 4 oct 2010, 02:41
hola,disculpen la molestia pero ya estoy cansado de googlear en busca de lo que quiero y e probado con todo es toy apunto de darme por vencido. pero quiero hacer el ultimo intento en este foro.
quiero hacer un buscador en vb que busque en forma intelijente, osea que cuando yo escribo una palabra el texto o los datos de un listbox ballan disminullendo y queden solo los nombres que contengan las palabras... con un filelistbox me funciona usando este codigo en el text change File1.Pattern = "*" + Text1.Text + "*.mp3" pero no me resulta en el file listbox,

lo que pasa es que quiero buscar toda mi musica que estan en diferentes carpetas y subcarpetas y el filelistbox me en seña de 1 en 1 y no me cirve,, plis ayudenme que estoy desesperado por terminar el proyecto, por cierto tengo 20mil mp3
Responder
JJHP- 18 oct 2010, 16:27
Hola necesito limpiar un formulario el cual esta compuesto por tres cuadro de texto, esto debe ocurrir luego que el usuario haga click en un boton, agradeseria su ayuda en esto
Responder
_her- 16 nov 2010, 02:14
mira aquí tienes un ejemplo de un programa similar al bloc de notas utilizando un control richtext

http://www.recursosvisualbasic.com.ar/...
Responder
CiberMetal- 25 abr 2011, 15:50
no guardes la imagen como objeto ya que eso hace que tu base de datos cresca en demasia y ademas tendras problemas para visualizar, es recomendable guardar la ruta de la imagen y asi el codigo q esta ahi funciona correctamente, ya lo he probado.....
Responder
nemesis master- 5 ago 2011, 19:36
Hola, tengo el siguiente problema, tengo una carpeta ful de fotos todas renombradas con numeros de cedula y quiero que en el evento change de un text aparezca la foto en image1 pero claro q coincida el numero del text con el numero de la foto que esta en una ruta cualquiera q yo coloque. me pueden ayudar es urgenteeeeeeeeeeeeeeee
Responder
Deja tu comentario
Respuesta
+0
moins plus
ME GUSTARIA QUE ME DES TU CORREO EL MIO ES aabf_sanin@hotmail.com hasi te puedo mandar lo que llevo hecho para que me entiendas mejor
Deja tu comentario
Respuesta
+0
moins plus
Hola quisiera saber como puedo habrir una ventana con un boton en visual basic express, y como abrir una ventana dentro de otra, perdon pero soy nuevo en esto...urge plis.
Deja tu comentario
Respuesta
+0
moins plus
Hola buenos dias a todos...
con una pregunta estoy haciendo un programa en vb 6.0 sobre un inventario y tengo que imprimir reportes por mes, zona y producto si me prodrias ayudar...
mi correo es oiramzacco@hotmail.com
gracias ....
Deja tu comentario
Respuesta
+0
moins plus
hoooooooooooola q tal pz nesesico que me ayuden a
funcionar el boton buscar en un programa consulta de labaoratorio
A continuación ingrese el siguiente código:



Private Sub CmdBuscar_Click()

If DeCursosLibres.rsCmConsultaProfe.State = adStateOpen Then

DeCursosLibres.rsCmConsultaProfe.Close

End If

DeCursosLibres.CmConsultaProfe (DbcProfe.Text)

Set DbgrdCursos.DataSource = DeCursosLibres.rsCmConsultaProfe

End Sub
ingreso ese codigo pero no me sale que hago


A continuación ingrese el siguiente código:
Deja tu comentario
Respuesta
+0
moins plus
tienes ke insertar la imagen desde visulano en acces
Deja tu comentario
Este documento intitulado « ver imagenes en Visual Basic » de Kioskea (es.kioskea.net) esta puesto a diposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible.

¿Todavía no eres usuario?

inscríbete, gratuitamente y en menos de un minuto!

Los miembros obtienen más respuestas que los usuarios anónimos.

Ser miembro te permite llevar un seguimiento detallado de tus consultas.

Ser miembro te permite gozar de otras opciones adicionales.