Ajuda - Busca - Membros - Calendário
Versão Completa: Carregando imagem / foto pelo endereço
iMasters Fóruns > Gerenciamento de Banco de Dados > Access
edkardoso
Salve galera!
Tenho visto mt gente com dúvidas de como carregar uma imagem por um endereço. Dai resolvi postar esse simples tuto. Até pq já penei bastante com isso tb e teve mt gente boa que me ajudou.
A grande vantagem da gente guardar apenas o endereço da imagem é sem dúvida o tamanho do arquivo.

Então Vamos lá:

1º Crie uma tabela com o seguintes campos, dê o nome que desejar:

---------------------------------
Foto, Numeração Automática
Descricao, Texto, 50
Link, Texto, 255
---------------------------------

2º Crie um formulário baseado nessa tabela

3º Insira um controle Imagem nesse formulário (selecione uma foto qualquer) e defina seu nome como imagem.

4º Insira um botão ao lado da caixa de texto Link

5º Acione a caixa de propriedades (F4) do seu botão e no procedimento do evento Ao clicar insira o código abaixo:

Private Sub MeuBotao_Click()
'É necessário fazer referência a Microsoft Office 11.0 Object Library
'em Ferramentas > Referências no Editor do Visual Basic

Dim CxDialog As Office.FileDialog

Set CxDialog = Application.FileDialog(msoFileDialogFilePicker)
With CxDialog

'define como seleção simples
.AllowMultiSelect = False

' Define o titulo da caixa de diálogo
.Title = "Selecione uma imagem"

' limpa os filtros
.Filters.Clear

'adiciona novos filtros
.Filters.Add "JPG", "*.jpg"
.Filters.Add "BMP", "*.bmp"
.Filters.Add "Todos os arquivos", "*.*"

'mostra a caixa de dialogo
If .Show = True Then 'se alguma imagem tiver sido escolhida
'atribuie o endereço da imagem ao campo link
Me.link = .SelectedItems(1)

'exibe a foto
me.Imagem.Visible = True

'carrega a foto
Me.Imagem.Picture = Me.link

End If
End With
End Sub

6º Vá no menu Ferramentas > Referências do Editor Visual basic e Marque a biblioteca
Microsoft Office 11.0 Object Library. Isso é imprescendível para o funcionamento da rotina.
Eu estou usando o Office 2003, de acordo com a sua versão pode ser outra, mas com o nome muito próximo a essa.

7º Volte ao seu formulário. Nas propriedades dele vá no envento No Atual e digite o código abaixo:
Private Sub Form_Current()

If Me.link <> nil Then
Me.Imagem.Visible = True
Me.Imagem.Picture = Me.link
Else
Me.Imagem.Visible = False
End If
End Sub


Pronto!! você já tem o seu pequeno álbum digital! Faça os ajustes que desejar na propriedade do controle imagem, como por exemplo no Modo tamanho, que permite que você veja a foto inteira (zoom).
Peço que postem ai para dizer se funcionou ou para tirar qualquer dúvida, ok ?!
Um abraço.
tiagotdi
Valeu pelas dicas, so nao entendi onde coloca a segunda parte do codigo:


---
Private Sub Form_Current()

If Me.link <> nil Then
Me.Imagem.Visible = True
Me.Imagem.Picture = Me.link
Else
Me.Imagem.Visible = False
End If
End Sub


....

Abraços

Tiago
Giankarlo
Ed,
Você saberia como posso fazer para capturar a imagem diretamente de uma WabCam? estou fazendo um sisteminha para recepção, onde todos os visitantes serão cadastrados com foto e dados pessoais simples, queria mesmo só clicar em um botão e este botão realizar o trabalho de fotografar e armazenar a foto no meu form. Tem como fazer esta tarefa usando o Access? excl.gif
jeffer.sp
Beleza Pessoal,

Eu consegui criar um link para inserir as fotos, conforme explica o POST, porém quando eu clico no botão para localizar a foto, da um "erro" ERRO DE COMPILAÇÃO - O TIPO DEFINIDO PELO USUÁRIO NÃO FOI DEFINIDO.
E aparece a linha Dim CxDialog As Office.FileDialog selecionada em amarelo.
O que fazer??
Estou precisando mto resolver isso!!!
Se alguem puder me dizer aonde está o erro...




QUOTE(Giankarlo @ 09/08/2007 - 11:50) *
Ed,
Você saberia como posso fazer para capturar a imagem diretamente de uma WabCam? estou fazendo um sisteminha para recepção, onde todos os visitantes serão cadastrados com foto e dados pessoais simples, queria mesmo só clicar em um botão e este botão realizar o trabalho de fotografar e armazenar a foto no meu form. Tem como fazer esta tarefa usando o Access? excl.gif

jones.s.duarte
Ed,

Aproveitando sua bondade cara!!!!!
Como faço para que em meus menus personalizados, quando eu executar a função de imprimir ele me exiba a janela de Imprimir.
Para que eu possa selecionar a impressora em que desejo fazer a impressão, as preferencias de impressão e etc....


Vlw grande... aguardo retorno.
jeffer.sp
beleza Kra!

Olha, ainda não sei como fazer isso direto, o que eu faço no meu BD é:
Criar uma opção para Visualização de relatorio, de depois vou em ARQUIVO, IMPRIMIR, e seleciono a Impressora e qtde de copias..
Vou ver se consigo algo e te passoo..



QUOTE(jones.s.duarte @ 28/08/2007 - 16:45) *
Ed,

Aproveitando sua bondade cara!!!!!
Como faço para que em meus menus personalizados, quando eu executar a função de imprimir ele me exiba a janela de Imprimir.
Para que eu possa selecionar a impressora em que desejo fazer a impressão, as preferencias de impressão e etc....


Vlw grande... aguardo retorno.

jones.s.duarte
Hey meu qrido... eu consegui resolver este problema de forma simples!!!

Para tanto basta selecionar o menu personalizar na barra de ferramentas com o botão direito do mouse.
Entaum localize a opção imprimir no menu arquivo da propria barra de menus,
E arrasta-la para sua barra de menus personalizados.

Qlqr duvida basta postar

Um forte Abraço

Jhooow
Maibaby
Olá,

Fiz conforme indicado porem está dando erro de Objeto Requerido na seguinte linha:

Set CxDialog = Application.FileDialog(msoFileDialogFilePicker)

Alguem pode me ajudar?!
Psycodelic
Resolveu meu problema cara!! muito obrigado!! o tópico está impecável e de parabéns!!! nota 10!!!
Mike Scofield
E ai ed cardoso beleza...?

Usei seu tuto pra resolver meu problema com imagens....
porem as imagens nao aparecer, elas sáo carregadas na tabela
mas a imagem no formulario nao aparece...
Saberia me dizer oq e?

Desde ja agradeco!!!
schuby
Caro amigo edkardoso ...

Achei muito interessante o seu trabalho, e acredito que muita gente neste fórum compartilha da minha opinião, só não teve tempo de se expressar. Estou tendo o mesmo problema que muitos no fórum estão tendo. Vou tentar utilizar o seu trabalho, e irei lhe postar caso tenha alguma dúvida. Sem dúvida alguma a idéia do amigo de apenas clicar num botão e apenas esparar o resultado é genial. Edkardoso, se você estiver trabalhando nisto, ponha por gentileza um post avisando que está tentando, pois, muita gente está na espectativa e torcendo para que você tenha sucesso. Aguardo seu retorno. Muito obrigado.
CJS
Está acusando um erro em "NIL" no código abaixo, você poderia me ajudar?

Private Sub Form_Current()

If Me.Link <> nil Then
Me.Imagem.Visible = True
Me.Imagem.Picture = Me.Link
Else
Me.Imagem.Visible = False
End If

End Sub

Obrigado,
Célio




QUOTE(edkardoso @ 25/01/2007 - 16:28) *
Salve galera!
Tenho visto mt gente com dúvidas de como carregar uma imagem por um endereço. Dai resolvi postar esse simples tuto. Até pq já penei bastante com isso tb e teve mt gente boa que me ajudou.
A grande vantagem da gente guardar apenas o endereço da imagem é sem dúvida o tamanho do arquivo.

Então Vamos lá:

1º Crie uma tabela com o seguintes campos, dê o nome que desejar:

---------------------------------
Foto, Numeração Automática
Descricao, Texto, 50
Link, Texto, 255
---------------------------------

2º Crie um formulário baseado nessa tabela

3º Insira um controle Imagem nesse formulário (selecione uma foto qualquer) e defina seu nome como imagem.

4º Insira um botão ao lado da caixa de texto Link

5º Acione a caixa de propriedades (F4) do seu botão e no procedimento do evento Ao clicar insira o código abaixo:

Private Sub MeuBotao_Click()
'É necessário fazer referência a Microsoft Office 11.0 Object Library
'em Ferramentas > Referências no Editor do Visual Basic

Dim CxDialog As Office.FileDialog

Set CxDialog = Application.FileDialog(msoFileDialogFilePicker)
With CxDialog

'define como seleção simples
.AllowMultiSelect = False

' Define o titulo da caixa de diálogo
.Title = "Selecione uma imagem"

' limpa os filtros
.Filters.Clear

'adiciona novos filtros
.Filters.Add "JPG", "*.jpg"
.Filters.Add "BMP", "*.bmp"
.Filters.Add "Todos os arquivos", "*.*"

'mostra a caixa de dialogo
If .Show = True Then 'se alguma imagem tiver sido escolhida
'atribuie o endereço da imagem ao campo link
Me.link = .SelectedItems(1)

'exibe a foto
me.Imagem.Visible = True

'carrega a foto
Me.Imagem.Picture = Me.link

End If
End With
End Sub

6º Vá no menu Ferramentas > Referências do Editor Visual basic e Marque a biblioteca
Microsoft Office 11.0 Object Library. Isso é imprescendível para o funcionamento da rotina.
Eu estou usando o Office 2003, de acordo com a sua versão pode ser outra, mas com o nome muito próximo a essa.

7º Volte ao seu formulário. Nas propriedades dele vá no envento No Atual e digite o código abaixo:
Private Sub Form_Current()

If Me.link <> nil Then
Me.Imagem.Visible = True
Me.Imagem.Picture = Me.link
Else
Me.Imagem.Visible = False
End If
End Sub


Pronto!! você já tem o seu pequeno álbum digital! Faça os ajustes que desejar na propriedade do controle imagem, como por exemplo no Modo tamanho, que permite que você veja a foto inteira (zoom).
Peço que postem ai para dizer se funcionou ou para tirar qualquer dúvida, ok ?!
Um abraço.

Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2008 Invision Power Services, Inc.