Deseo hacer un formulario donde el usuario llene los datos de un producto y solamente de click al PictureBox y carge la imagen. Yo busque en sus FAQ como hacer lo de las imagenes. Al correr su codigo fuente sirve perfectamente, pero al adaptarlo a mi programa aparece que la variable mystream no aparece declarada... aqui esta el codigo fuente que adapte de su programa al mio
Código:
El metodo de conexion es el mismo, Environment bajo Jet 4.0. Ayudenme por favor!Dim conn As New ADODB.Connection ' declaramos la conexion Dim Rs As New ADODB.Recordset 'declaramos el recordset Dim mystream As New ADODB.Stream ' declaramos el stream para leer las fotos Dim Direc As String ' declaramos la variable donde guardaremos nuestra foto Private Sub FotoDB_Click() 'Buscamos la imagen con el diálogo Dialogo.Filter = "Archivos JPG|*.jpg|Archivos GIF|*.gif|Archivos BMP|*.bmp" ' le decimos al dialogo --- ' que filtre los arhivos jpg, gif, bmp Dialogo.ShowOpen ' que abra el cuadro de dialogo If Dialogo.FileName = "" Then ' si es ho eligio imagen que no se salga del proceso MsgBox "Debe elegir una imagen para que poder agregar el registro", vbInformation, "Error" Exit Sub End If Rs.AddNew mystream.Open mystream.LoadFromFile Dialogo.FileName Rs("imagen") = mystream.Read Rs.Update mystream.Close ' Cerrar Stream MsgBox "Se ha agregado la imagen satisfactoriamente", vbInformation, "Agregada" If Rs.BOF = False Then End If End Sub Private Sub Form_Load() conn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\far.mdb" & ";Uid=Admin;Pwd=;" ' Declaramos el driver de access y la ubicacion de la base de datos ' la opion app.path nos da el direccionamiento del nuestro proyecto o programa y solo agregamos el nombre de base de datos en este caso "\dbfotos.mdb" le antepones una diagonal pra hacer la division de directorio o archivo conn.CursorLocation = adUseClient conn.Open 'abrimos la conexion Rs.Open "Select * From producto", conn, adOpenStatic, adLockOptimistic ' abrimos el recordset Direc = App.Path & "\temp.jpg" ' declaramos cual va a ser nuestro directorio temporal mystream.Type = adTypeBinary ' le decimos que nuestra imagen es de tipo binario If Rs.BOF = False Then Previsualizar End If End Sub End Sub Private Sub Previsualizar() On Local Error Resume Next ' por si surge alguno error que lo pase por alto mystream.Open ' abrimos el stream mystream.Write Rs!foto ' leemos la imagen mystream.SaveToFile Direc, adSaveCreateOverWrite ' guardamos la imagen en unestro directorio temporal mystream.Close ' cerramos el stream far.Picture = LoadPicture(Direc) ' previsalizamos la imagen en nuestro picture control End Sub
Ah otra cosa... Como hago para captar la fecha y la hora (en etiquetas de texto separadas) sin necesidad de que el usuario clickee. O sea, que se genere automaticamente, no se necesita guardarla en la BD.
Gracias de antemanos, atentamente
Ma3s_Hugh3s