Consulta también:
- Código para mostrar una imagen en visual basic
- Visual basic programas hechos - Mejores respuestas
- Codigo para hacer una calculadora en visual basic ✓ - Foros - Programación
- Códigos de visual basic para botones ✓ - Foros - Programación
- Codigos de visual basic 6.0 - Foros - Programación
- Codigo para guardar en visual basic ✓ - Foros - Programación
- Sistemas en visual basic 6.0 + codigo fuente + base de datos ✓ - Foros - Programación
23 respuestas
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
---------------------------------------
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
---------------------------------------
damaincam
31 ago 2009 a las 13:19
- Message postés
- 1
- Date d'inscription
- lunes, 31 de agosto de 2009
- Estatus
- Miembro
- Última intervención
- lunes, 31 de agosto de 2009
31 ago 2009 a las 13:19
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
gracias
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
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
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 :)
¿No encontraste la respuesta que buscabas?
Haz una pregunta
prueba este ejemplo si te sirve
https://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/351-ado-stream-imagenes.htm
https://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/351-ado-stream-imagenes.htm
javierpelegrini
10 jul 2011 a las 00:37
- Message postés
- 14
- Date d'inscription
- lunes, 14 de marzo de 2011
- Estatus
- Miembro
- Última intervención
- jueves, 15 de septiembre de 2011
10 jul 2011 a las 00:37
Si yo también te lo recomiendo, debes guardar únicamente la ruta de la imagen en la tabla. suerte
Vagui_yo
29 sep 2009 a las 22:45
- Message postés
- 1
- Date d'inscription
- martes, 29 de septiembre de 2009
- Estatus
- Miembro
- Última intervención
- martes, 29 de septiembre de 2009
29 sep 2009 a las 22:45
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é.
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é.
maesdamian
26 oct 2009 a las 19:33
- Message postés
- 2
- Date d'inscription
- lunes, 26 de octubre de 2009
- Estatus
- Miembro
- Última intervención
- lunes, 26 de octubre de 2009
26 oct 2009 a las 19:33
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.
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.
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
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
saludos - cualquier duda... enviame correo a : martin_oro@yahoo.com.ar
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
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
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
Mi correo es nanoknot@hotmail.com ... el mismo msn por si quieres agregarme para que te bombardee de preguntas ..ajaja
gracias !! hernan
nanoknot
28 jun 2009 a las 03:04
- Message postés
- 1
- Date d'inscription
- sábado, 27 de junio de 2009
- Estatus
- Miembro
- Última intervención
- domingo, 28 de junio de 2009
28 jun 2009 a las 03:04
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 ....
adios y gracias ....
Nesesito ayuda para hacer una clase de blo de notas que se guarde al cerrar alguien me puede ayudar aabf_sanin@hotmail.com
Estoy tratando de hacer una aplicacion que son varios blogs de noatas en uno pero no se hacer que se guarden te lo mando para que lo veas (esta en exe pero no guarda cambios y para abrir en visual)
Si no me entendiste: La aplicacion tiene la funcion de guardar texto pero no puedo hacer que lo guarde al cerrarse (nesecito agregar el "guardar cambios")
LOS CAMBIOS SE DEBEN GUARDAR EN EL EXE
DISCULPA LA TARDANZA
Si no me entendiste: La aplicacion tiene la funcion de guardar texto pero no puedo hacer que lo guarde al cerrarse (nesecito agregar el "guardar cambios")
LOS CAMBIOS SE DEBEN GUARDAR EN EL EXE
DISCULPA LA TARDANZA
Bueno ahora si tenés aquí los datos en el mismo ejecutable, pero necesitas tener en algún lugar del disco rígido un archivo temporal del ejecutable original.
Aquí te dejo el código original.
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
'al salir llama a la función para archivar en el ejecutable los textbox
archivartextos
'examina si la dirección del ejecutable actual es distinta a -temporal.exe-
If App.Path & "\" & App.EXEName & ".exe" <> App.Path & "\temporal.exe" Then
'entonces llama a que se ejecute -temporal.exe-
Shell App.Path & "\temporal.exe"
End If
End Sub
Private Sub mnuSalir_Click()
On Error Resume Next
'si presionamos el boton se descarga el ejecutable
'si pusieramos -end- el -Form_QueryUnload- no funcionaría
Unload Me
End Sub
Private Sub mnuLimpiar_Click()
'bueno esto es para limpiar los textbox
'los cuales pusimos como elementos de una matriz para sintetizar código.
Text1(0).Text = ""
Text1(1).Text = ""
Text1(2).Text = ""
Text1(3).Text = ""
End Sub
Private Sub archivartextos()
On Error Resume Next
Dim archivo As String: Dim directorio As String
Dim exe_temporal As String
Dim total As String
Dim fnum As Integer
'establecemos en la variable directorio el ejecutable -temporal.exe-
directorio = App.Path & "\temporal.exe"
fnum = FreeFile
'abrimos -temporal.exe- en modo binario y solamente para lectura
Open directorio For Binary Access Read As fnum
'Creamos el espacio necesario para la variable
exe_temporal = Space(LOF(fnum))
'finalmente leemos el contenido del ejecutable en la variable string
Get fnum, , exe_temporal
'cerramos el archivo.
Close fnum
'Asignamos a la variable -total- la información extraida de -temporal.exe-
'utilizamos un separador -@separador@- para la función split que se utilizará para cargar los datos en un array
' separamos así los contenidos de los textbox
total = exe_temporal & "@separador@" & Text1(0).Text & "@separador@" & Text1(1).Text & "@separador@" & Text1(2).Text & "@separador@" & Text1(3).Text & "@separador@"
fnum = FreeFile
'definimos el valor de archivo a -Minibase1.exe- que sera temporal.
archivo = App.Path & "\Minibase1.exe"
'abrimos en modo binario para escritura y escribimos el valor de -total-
Open archivo For Binary Access Write As fnum
Put fnum, LOF(fnum) + 1, total
Close
End Sub
Private Sub extraedatosdetextbox(exe As String)
On Error Resume Next
Dim i
'variable de lectura del contenido de este ejecutable
Dim exe_contenido As String
Dim fnum As Integer
fnum = FreeFile
'abrimos el archivo en modo binario y lectura solamente
Open exe For Binary Access Read As fnum
exe_contenido = Space(LOF(fnum))
Get fnum, , exe_contenido
Close fnum
'creamos la matriz
Dim tmp() As String
'le asignamos con split todo el contenido del archivo, utilizando el separador -@separador@-
tmp = Split(exe_contenido, "@separador@")
'hacemos un recorrido por toda la matriz
For i = 0 To UBound(tmp)
'asignamos a los textbox indezados el valor de la matriz mas uno, pues el primer elemento es
'el ejecutable
Text1(i).Text = tmp(i + 1)
Next i
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
'Porque el timer?
'Por comodidad.
'Resulta que el evento load del formulario hay muchas cosas que no la puede lograr
'por efecto de la inmediatez de los acontecimientos.
'Así que le damós algún tiempo para que el programa se acomode y luego le mandamos
'las directivas.
'---------------------------------------------------
'pruebe de poner estas directivas en el evento load del formulario y no funcionará.
'---------------------------------------------------
'Examina si el ejecutable es -temporal.exe- en tal caso ejecuta lo siguiente
If App.Path & "\" & App.EXEName & ".exe" = App.Path & "\temporal.exe" Then
'borra el ejecutable -Minibase.exe-
Kill App.Path & "\Minibase.exe"
'pues de lo contrario esta directiva de copia mandaría un error
FileCopy App.Path & "\Minibase1.exe", App.Path & "\Minibase.exe"
'finalmente borra -Minibase1.exe- que fué creado a los efectos temporales
Kill App.Path & "\Minibase1.exe"
'sale del programa
End
End If
'Si el nombre del ejecutable no es --temporal.exe-
'ejecuta la función siguiente y muestra los datos en pantalla
extraedatosdetextbox App.Path & "\" & App.EXEName & ".exe"
'desactiva el timer.
Timer1.Enabled = False
End Sub
'Bueno tenes un ejecutable que archiva los datos en si mismo.
Un abrazo luis.
Aquí te dejo el código original.
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
'al salir llama a la función para archivar en el ejecutable los textbox
archivartextos
'examina si la dirección del ejecutable actual es distinta a -temporal.exe-
If App.Path & "\" & App.EXEName & ".exe" <> App.Path & "\temporal.exe" Then
'entonces llama a que se ejecute -temporal.exe-
Shell App.Path & "\temporal.exe"
End If
End Sub
Private Sub mnuSalir_Click()
On Error Resume Next
'si presionamos el boton se descarga el ejecutable
'si pusieramos -end- el -Form_QueryUnload- no funcionaría
Unload Me
End Sub
Private Sub mnuLimpiar_Click()
'bueno esto es para limpiar los textbox
'los cuales pusimos como elementos de una matriz para sintetizar código.
Text1(0).Text = ""
Text1(1).Text = ""
Text1(2).Text = ""
Text1(3).Text = ""
End Sub
Private Sub archivartextos()
On Error Resume Next
Dim archivo As String: Dim directorio As String
Dim exe_temporal As String
Dim total As String
Dim fnum As Integer
'establecemos en la variable directorio el ejecutable -temporal.exe-
directorio = App.Path & "\temporal.exe"
fnum = FreeFile
'abrimos -temporal.exe- en modo binario y solamente para lectura
Open directorio For Binary Access Read As fnum
'Creamos el espacio necesario para la variable
exe_temporal = Space(LOF(fnum))
'finalmente leemos el contenido del ejecutable en la variable string
Get fnum, , exe_temporal
'cerramos el archivo.
Close fnum
'Asignamos a la variable -total- la información extraida de -temporal.exe-
'utilizamos un separador -@separador@- para la función split que se utilizará para cargar los datos en un array
' separamos así los contenidos de los textbox
total = exe_temporal & "@separador@" & Text1(0).Text & "@separador@" & Text1(1).Text & "@separador@" & Text1(2).Text & "@separador@" & Text1(3).Text & "@separador@"
fnum = FreeFile
'definimos el valor de archivo a -Minibase1.exe- que sera temporal.
archivo = App.Path & "\Minibase1.exe"
'abrimos en modo binario para escritura y escribimos el valor de -total-
Open archivo For Binary Access Write As fnum
Put fnum, LOF(fnum) + 1, total
Close
End Sub
Private Sub extraedatosdetextbox(exe As String)
On Error Resume Next
Dim i
'variable de lectura del contenido de este ejecutable
Dim exe_contenido As String
Dim fnum As Integer
fnum = FreeFile
'abrimos el archivo en modo binario y lectura solamente
Open exe For Binary Access Read As fnum
exe_contenido = Space(LOF(fnum))
Get fnum, , exe_contenido
Close fnum
'creamos la matriz
Dim tmp() As String
'le asignamos con split todo el contenido del archivo, utilizando el separador -@separador@-
tmp = Split(exe_contenido, "@separador@")
'hacemos un recorrido por toda la matriz
For i = 0 To UBound(tmp)
'asignamos a los textbox indezados el valor de la matriz mas uno, pues el primer elemento es
'el ejecutable
Text1(i).Text = tmp(i + 1)
Next i
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
'Porque el timer?
'Por comodidad.
'Resulta que el evento load del formulario hay muchas cosas que no la puede lograr
'por efecto de la inmediatez de los acontecimientos.
'Así que le damós algún tiempo para que el programa se acomode y luego le mandamos
'las directivas.
'---------------------------------------------------
'pruebe de poner estas directivas en el evento load del formulario y no funcionará.
'---------------------------------------------------
'Examina si el ejecutable es -temporal.exe- en tal caso ejecuta lo siguiente
If App.Path & "\" & App.EXEName & ".exe" = App.Path & "\temporal.exe" Then
'borra el ejecutable -Minibase.exe-
Kill App.Path & "\Minibase.exe"
'pues de lo contrario esta directiva de copia mandaría un error
FileCopy App.Path & "\Minibase1.exe", App.Path & "\Minibase.exe"
'finalmente borra -Minibase1.exe- que fué creado a los efectos temporales
Kill App.Path & "\Minibase1.exe"
'sale del programa
End
End If
'Si el nombre del ejecutable no es --temporal.exe-
'ejecuta la función siguiente y muestra los datos en pantalla
extraedatosdetextbox App.Path & "\" & App.EXEName & ".exe"
'desactiva el timer.
Timer1.Enabled = False
End Sub
'Bueno tenes un ejecutable que archiva los datos en si mismo.
Un abrazo luis.
Hola Luis!!!!
Antes que todo te mando un saludo, me gustaría saber si me puedes enviar a mi mail los dos archivos comprimidos con proyectos Visual Basic 6.0 que le mandaste a SID, de antemano te lo agradesco, necesito trabajar con una base de datos de imágenes y creo que me podrían ayudar tus ejemplos.
De antemano te agradesco, mi mail es lomlmx@hotmail.com, que estés bien =D
Antes que todo te mando un saludo, me gustaría saber si me puedes enviar a mi mail los dos archivos comprimidos con proyectos Visual Basic 6.0 que le mandaste a SID, de antemano te lo agradesco, necesito trabajar con una base de datos de imágenes y creo que me podrían ayudar tus ejemplos.
De antemano te agradesco, mi mail es lomlmx@hotmail.com, que estés bien =D
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
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.
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 ....
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 ....
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:
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:
24 jun 2009 a las 02:22
Primero k nada gracias por el post me ha sido de mucha ayuda.
pero estoy un poco atorado =\
con el codigo k dejaste estoy intentando hacer un catalogo de productos en el cual muestre la foto por cada articulo.
Mi problema es que en el command7 no me guarda la ruta del JPG en el campo FOTO...
y tambien como puedo hacer para k al darle siguiente o anterior se cargue la foto del articulo..
Gracias por tu atencion, que jah te bendiga.
24 jun 2009 a las 02:46
estoy trabajando con VB 6 y Acces 2003
24 jun 2009 a las 04:18
Si me haces llegar tu mail, te adjuntaré dos archivos comprimidos con proyectos Visual Basic 6.0
En los archivos comprimidos que te adjuntaré, tenes dos tipos casi iguales de modelos que utilice en otros foros de esta misma página, uno de ellos es el que también esta en este foro.
No te enviaré las fotos para no sobrecargar el mensaje, pero una vez que ejecutas el proyecto, te vas a editar, buscar una foto cualquiera y le das guardar. Veras como se van actualizando las fotos en cada registro, y como al avanzar o retroceder o si decides ir al primero o ultimo registro, la foto correspondiente al mismo se visualiza.
Pues lo que hace es leer el directorio donde esta la foto, directorio que se guarda en la base Access como texto solamente y luego muestra la foto.
Lo bueno que tiene este proceso, es que todas las fotos que vos vayas eligiendo, se copian automáticamente al directorio imágenes del path donde se este ejecutando este programa, de manera tal que todas las imágenes te van quedando juntas en un mismo lugar, sin necesidad de que vos tengas que copiarla explorador mediante.
Una vez que recibas los archivos comprimidos mira en los formularios de cada proyecto que está debidamente explicado paso a paso.
No dudes en consultarme cualquier duda que tengas al respecto y ni bien tenga tu mail o alguno alternativo que vos quieras, te envio los archivos comprimidos.
Un abrazo fraterno.
Luis
24 jun 2009 a las 18:06
mi e-mail es el siguiente: sida20@hotmail.com
muchas gracias por tu apoyo, tu tiempo y la atencion prestada.
Saludos!
24 jun 2009 a las 19:12
Te envié por correo los dos proyectos.
Gracias por considerarnos de utilidad.
Cualquier pregunta a tu entera disposición.
Un abrazo.
Luis