Duda sobre la utilización de form enlazado a una base de datos access mediante adodc en Visual Basic

Hola amigo un cordial saludo, mi problema es el siguiente: tengo un form enlazado a una base de datos en access mediante adodc tengo los campos nombres, dirección, etc... Como puedo hacer para que cuando de clic en el botón nuevo pueda ademas de agregar los datos personales también el usuario tenga la opción de agregar una foto, una imagen por cada registro que se agregue OJALA PUEDAS AYUDARME, UN SALUDO ATENTAMENTE JESÚS, agradecería un ejemplo para guiarme, lo he tratado de hacer con el picture box pero me sale el error, SALUDOS

1 Respuesta

Respuesta
1
Primero que nada disculpa la tardanza..
Debes agregar en el formulario los siguientes controles:
1) DriveListBox
2) DirListBox
3) FileListBox
4) PictureBox
5) CommandButton
Luego copia estos códigos:
Dim BD As Database
Dim rContactos As Recordset
Private Sub Form_Load()
File1.Pattern = "*.jpg" ' para que busque solo archivos jpg
Set BD = OpenDatabase(App.Path & "\Bd2.mdb")
Set rContactos = BD.OpenRecordset("foto")
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub File1_Click()
Picture1.Picture = LoadPicture(Dir1.Path + "\" + File1.FileName)
End Sub
todo lo anterior es para cargar la imagen en el picturebox.
ahora estamos listos para almacenar en la bd, copia lo siguiente:
en el CommandButton, copia:
Private Sub Command1_Click()
rContactos.AddNew
rContactos!ID = Text1
GuardarBinary rContactos!FOTO, Picture1
rContactos.Update
End Sub
crea un modulo y copia:
Option Explicit
Dim DataFile As Integer
Dim Chunk() As Byte
Const conChunkSize As Integer = 16384
Public Sub GuardarBinary(campoBinary As Field, unPicture As PictureBox)
'Guardar el contenido del Picture en el campo de la base
Dim i As Integer
Dim Fragment As Integer, Fl As Long, Chunks As Integer
'Guardar el contenido del picture en un fichero temporal
SavePicture unPicture.Picture, "pictemp"
'Leer el fichero y guardarlo en el campo
DataFile = FreeFile
Open "pictemp" For Binary Access Read As DataFile
Fl = LOF(DataFile) ' Longitud de los datos en el archivo
If Fl = 0 Then Close DataFile: Exit Sub
Chunks = Fl \ conChunkSize
Fragment = Fl Mod conChunkSize
ReDim Chunk(Fragment)
Get DataFile,, Chunk()
CampoBinary. AppendChunk Chunk()
ReDim Chunk(conChunkSize)
For i = 1 To Chunks
Get DataFile,, Chunk()
CampoBinary. AppendChunk Chunk()
Next i
Close DataFile
'Ya no necesitamos el fichero, así que borrarlo
On Local Error Resume Next
If Len(Dir$("pictemp")) Then
Kill "pictemp"
End If
Err = 0
End Sub
Nota:
En la bd el campo foto debe ser de tipo: Objeto OLE
Y listo con esto guardas la foto en la bd..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas