Título: No veo la IMAGEN Publicado por: El_guanaco en 10 Abril 2006, 06:35 am Hola ;D
Sos principiante no lo olviden :-[ El siguiente listado carga una base de access 2000 o una base de access 97 desde un combo. Private Sub Form_Load() ' Todas estas conexiones y asignaciones se pueden hacer ' (y se suele hacer) en tiempo de diseño ' ' Esta conexión se hará en el evento Combo1_Click ' ' Asignar los valores al Combo: With Combo1 .Clear .AddItem "Base de datos Access 2000 (alum.mdb)" .AddItem "Base de datos Access 97 (db97.mdb)" ' Por defecto será la base de Access 2000 ' (esto producirá un evento en el Combo1, ver: Combo1_Click) .ListIndex = 0 End With ' Conectar manualmente los Text1 al recordset ' (esto también se suele hacer en tiempo de diseño) Dim i As Long ' Asignar el control data For i = 0 To 2 Set Text1(i).DataSource = Adodc1 Next ' Asiganr los nombres de los campos Text1(0).DataField = "Nombre" Text1(1).DataField = "Apellidos" Text1(2).DataField = "fotografía" End Sub Mi problema es que tengo un campo llamado Fotografia (imagen en la base de datos), el listado anterior no funciona para mi campo fotografia, solo me muestra simbolos raros. Por lo que se ve el campo fotografia esta definido en una matriz tipo Long, Como puedo hacer para que me muestre la imagen.??? Título: Re: No veo la IMAGEN Publicado por: Cicklow en 10 Abril 2006, 17:16 pm ese campo lo tendras que kargar en un objeto imagen, kreo que es con loadimage(), o algo parecido, pero lo que podes hacer es mirar este codigo:
http://www.mvps.org/vexpert/articles/adoImages.htm o esto: http://www.google.com.ar/search?hl=es&rls=GGLG,GGLG:2006-10,GGLG:es&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=access+%2B+VB+%2B+imagen&spell=1 Saludos Título: Re: No veo la IMAGEN Publicado por: cesarYF en 11 Abril 2006, 16:04 pm este es un ejemplo que te ayudra creas una tabla con acess llamada bd1 con tres campos
Id_foto tipo texto nombre tipo texto foto objeto ole base de datos (http://www.uploadtemple.com/thumb/1144763149.jpg) (http://www.uploadtemple.com/view.php/1144763149.jpg) formulario (http://www.uploadtemple.com/thumb/1144762982.jpg) (http://www.uploadtemple.com/view.php/1144762982.jpg) agregar foto (http://www.uploadtemple.com/thumb/1144763385.jpg) (http://www.uploadtemple.com/view.php/1144763385.jpg) nota no esta validado completamente pero muestra lo que tu pides o sea la foto ejecuta el programa les das add escojes la foto y le das guardar en el icono del diskette llenas las cajas de texto y listo creas un modulo '******** Option Explicit Dim DataFile As Integer Dim Chunk() As Byte Const conChunkSize As Integer = 16384 Public Sub LeerBinary(campoBinary As Field, unPicture As PictureBox) Dim lngCompensación As Long Dim lngTamañoTotal As Long DataFile = FreeFile Open "pictemp" For Binary Access Write As DataFile lngTamañoTotal = campoBinary.ActualSize 'MsgBox lngTamañoTotal Do While lngCompensación < lngTamañoTotal Chunk() = campoBinary.GetChunk(lngCompensación + conChunkSize) Put DataFile, , Chunk() lngCompensación = lngCompensación + conChunkSize Loop Close DataFile unPicture.Picture = LoadPicture("pictemp") On Local Error Resume Next If Len(Dir$("pictemp")) Then Kill "pictemp" End If Err = 0 End Sub ' ******************************************************* 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 ' 'NOTA: ' El recordset debe estar preparado para Editar o Añadir ' '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 '********* codigo formulario '************** Private Sub CmdAnterior_Click() DePrueba.rsCmFoto.MovePrevious If DePrueba.rsCmFoto.BOF Then DePrueba.rsCmFoto.MoveNext End If LeerBinary DePrueba.rsCmFoto!FOTO, Picture1 End Sub Private Sub CmdPrimero_Click() DePrueba.rsCmFoto.MoveFirst LeerBinary DePrueba.rsCmFoto!FOTO, Picture1 End Sub Private Sub CmdSiguiente_Click() DePrueba.rsCmFoto.MoveNext If DePrueba.rsCmFoto.EOF Then DePrueba.rsCmFoto.MoveLast End If LeerBinary DePrueba.rsCmFoto!FOTO, Picture1 End Sub Private Sub CmdUltimo_Click() DePrueba.rsCmFoto.MoveLast LeerBinary DePrueba.rsCmFoto!FOTO, Picture1 End Sub Private Sub Command1_Click() ' añadir nuevo DePrueba.rsCmFoto.AddNew Picture1.Picture = LoadPicture() CommonDialog1.ShowOpen If CommonDialog1.FileName <> "" Then Picture1.Picture = LoadPicture(CommonDialog1.FileName) End If End Sub Private Sub Command4_Click() ' actualizar If txtId_Foto <> "" And txtNombre <> "" Then GuardarBinary DePrueba.rsCmFoto!FOTO, Picture1 DePrueba.rsCmFoto.Update Else MsgBox "LLene Los Campos" End If End Sub Private Sub Form_Load() If Not DePrueba.rsCmFoto.EOF Then LeerBinary DePrueba.rsCmFoto!FOTO, Picture1 End If End Sub '************** aqui en el ejemplo trabajo con dataenviroment |