EXIBIR IMAGEM ANEXA EM CAMPO DO FORM-ACCESS 2010
Olá,
Estou criando uma aplicação e não consigo exibir a imagem anexa em algum campo do meu Form, quando seleciono um registro em um listbox.
Trata-se de uma agenda, onde os registros são listados em um listbox, quando dou um duploclick no registro do listbox ele carrega as informações do registro para os campos textbox. Gostaria de carregar uma imagem junto com as informações do registro. Cada registro na tabela possui uma imagem.
Grato se alguém puder me ajudar, caso seja necessário posso encaminhar a minha aplicação.
Utilizo o Access 2010.
Segue os principais códigos utilizados:
Utilizo este código para carregar os textbox com as informações dos registros da tabela, o campo foto é o campo que consta a imagem.
Private Sub list_Ag_Contatos_DblClick(Cancel As Integer)
Limpar_Agenda
Set Banco = CurrentDb
Set Tb = Banco.OpenRecordset([Ô]SELECT ID, Nome, Celular, Fixo, @Comercial, @Pessoal, Grupo, Foto [Ô] & _
[Ô]FROM AGENDA WHERE ((ID)= [Ô] & list_Ag_Contatos & [Ô])[Ô])
txt_Ag_Nome = Tb([Ô]Nome[Ô])
txt_Ag_Celular = Tb([Ô]Celular[Ô])
txt_Ag_Fixo = Tb([Ô]Fixo[Ô])
txt_Ag_EmailComercial = Tb([Ô]@Comercial[Ô])
txt_Ag_EmailPessoal = Tb([Ô]@Pessoal[Ô])
cmb_Ag_Grupo = Tb([Ô]Grupo[Ô])
txt_Ag_ID = Tb([Ô]ID[Ô])
End Sub
Estou criando uma aplicação e não consigo exibir a imagem anexa em algum campo do meu Form, quando seleciono um registro em um listbox.
Trata-se de uma agenda, onde os registros são listados em um listbox, quando dou um duploclick no registro do listbox ele carrega as informações do registro para os campos textbox. Gostaria de carregar uma imagem junto com as informações do registro. Cada registro na tabela possui uma imagem.
Grato se alguém puder me ajudar, caso seja necessário posso encaminhar a minha aplicação.
Utilizo o Access 2010.
Segue os principais códigos utilizados:
Utilizo este código para carregar os textbox com as informações dos registros da tabela, o campo foto é o campo que consta a imagem.
Private Sub list_Ag_Contatos_DblClick(Cancel As Integer)
Limpar_Agenda
Set Banco = CurrentDb
Set Tb = Banco.OpenRecordset([Ô]SELECT ID, Nome, Celular, Fixo, @Comercial, @Pessoal, Grupo, Foto [Ô] & _
[Ô]FROM AGENDA WHERE ((ID)= [Ô] & list_Ag_Contatos & [Ô])[Ô])
txt_Ag_Nome = Tb([Ô]Nome[Ô])
txt_Ag_Celular = Tb([Ô]Celular[Ô])
txt_Ag_Fixo = Tb([Ô]Fixo[Ô])
txt_Ag_EmailComercial = Tb([Ô]@Comercial[Ô])
txt_Ag_EmailPessoal = Tb([Ô]@Pessoal[Ô])
cmb_Ag_Grupo = Tb([Ô]Grupo[Ô])
txt_Ag_ID = Tb([Ô]ID[Ô])
End Sub
Abaixo seguem as funções que armazenam e lêem as imagens:
Public Sub GetPicture(f As Field, pic As Control)
Dim x() As Byte
Dim ff As Integer
Dim strArqTemp As String
strArqTemp = [Ô]c: emp\pic.bmp[Ô]
ff = FreeFile
Open strArqTemp For Binary Access Write As ff
x() = f.GetChunk(0, f.FieldSize)
Put ff, , x()
Close ff
pic.Picture = LoadPicture(strArqTemp)
Kill strArqTemp
End Sub
Public Sub LetPicture(f As Field, pic As Control)
Dim x() As Byte
Dim n As Long
Dim ff As Integer
Dim strArqTemp As String
ff = FreeFile
strArqTemp = [Ô]c: emp\pic.bmp[Ô]
SavePicture pic.Picture, strArqTemp
Open strArqTemp For Binary Access Read As ff
n = LOF(ff)
If n Then
ReDim x(n)
Get ff, , x()
f.AppendChunk x()
Close ff
End If
Kill strArqTemp
End Sub
Primeiro você terá que armazenar a imagem no banco de dados no formato em que ele consiga reconhecer, pra isso use:
rec.AddNew
LetPicture rec([Ô]Figura[Ô]), Picture1
[ô]rec([Ô]OutroCampo[Ô]) = outrovalor...
rec.Update
Já para a leitura do registro use:
GetPicture rec([Ô]Figura[Ô]), Picture1
onde rec([Ô]Figura[Ô]) é o recordset que contém a figura.
[txt-color=#007100]Fonte: [/txt-color]http://www.vbweb.com.br/dicas_visual.asp?Codigo=1755&Classificacao=
Public Sub GetPicture(f As Field, pic As Control)
Dim x() As Byte
Dim ff As Integer
Dim strArqTemp As String
strArqTemp = [Ô]c: emp\pic.bmp[Ô]
ff = FreeFile
Open strArqTemp For Binary Access Write As ff
x() = f.GetChunk(0, f.FieldSize)
Put ff, , x()
Close ff
pic.Picture = LoadPicture(strArqTemp)
Kill strArqTemp
End Sub
Public Sub LetPicture(f As Field, pic As Control)
Dim x() As Byte
Dim n As Long
Dim ff As Integer
Dim strArqTemp As String
ff = FreeFile
strArqTemp = [Ô]c: emp\pic.bmp[Ô]
SavePicture pic.Picture, strArqTemp
Open strArqTemp For Binary Access Read As ff
n = LOF(ff)
If n Then
ReDim x(n)
Get ff, , x()
f.AppendChunk x()
Close ff
End If
Kill strArqTemp
End Sub
Primeiro você terá que armazenar a imagem no banco de dados no formato em que ele consiga reconhecer, pra isso use:
rec.AddNew
LetPicture rec([Ô]Figura[Ô]), Picture1
[ô]rec([Ô]OutroCampo[Ô]) = outrovalor...
rec.Update
Já para a leitura do registro use:
GetPicture rec([Ô]Figura[Ô]), Picture1
onde rec([Ô]Figura[Ô]) é o recordset que contém a figura.
[txt-color=#007100]Fonte: [/txt-color]http://www.vbweb.com.br/dicas_visual.asp?Codigo=1755&Classificacao=
ola,
Com este código eu atribuo uma imagem partindo de um diretório, não diretamente do banco, correto?
Queria utilizar o campo “anexo†do access.
Carreguei a aplicação no link abaixo, caso ajude na compreensão.
http://www.4shared.com/file/BavpjYdy/AGENDA_-_TESTE_FOTO.html
Grato pela ajuda
Com este código eu atribuo uma imagem partindo de um diretório, não diretamente do banco, correto?
Queria utilizar o campo “anexo†do access.
Carreguei a aplicação no link abaixo, caso ajude na compreensão.
http://www.4shared.com/file/BavpjYdy/AGENDA_-_TESTE_FOTO.html
Grato pela ajuda
Tópico encerrado , respostas não são mais permitidas