Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Arthurcc

[Resolvido] Banco de Dados e Imagens

Recommended Posts

Ola Pessoal

Estou fazendo um programinha que visa mostrar imagens apartir do caminho especificado em um banco de dados, o programa abre o banco de dados (imagens1.mdb) abre uma tabela chamada (Tabela) e dentro dessa tabela tem o caminho das imagens, por exemplo: fotos\foto1.JPG. obs: a celula que contem esses caminhos chamam (Caminho).

Depois fiz o programa abrir automaticamente a primeira imagem.

Mas eu queria que um botao chamado avançar avançasse para as proximas imagens do banco de dados (fotos\foto2.JPG), (fotos\foto3.JPG) e assim sucessivamente. Quando chegar na ultima, voltar para a primeira automaticamente.

TB queria que um botao chamado voltar voltasse para as imagens anteriores.

Vou postar o codigo fonte aqui.

 

------------------------------------------------------------

Dim BD As DAO.Database
Dim Colaborador As DAO.Recordset

Private Sub Command1_Click()
Colaborador.MoveNext
Image1.Picture = LoadPicture(App.Path + "\" + Colaborador.MoveNext) -> isso dá erro nao sei porque...
End Sub

Private Sub Form_Load()
Set BD = OpenDatabase(App.Path + "\imagens1.mdb", False, False)
Set Colaborador = BD.OpenRecordset("Tabela")
Image1.Picture = LoadPicture(App.Path + "\" + Colaborador("Caminho"))
End Sub

Nesse programa há:

Um botao chamado Command1

e um campo de imagem chamado image1

 

No que será que estou errando? Alguem saberia? Estou apanhando muito.

 

Obrigado Pela atençao pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Arthur...

 

Bom, o seu form_load está correto.

 

Mas o seu command1_click não.

 

Você já colocou o colaborador.movenext, então na linha do loadpicture, faça igual fez no load (LoadPicture(App.Path + "\" + Colaborador("Caminho"))).

 

Isso fará passar para a próxima imagem.

 

Para passar para a anterior, a idéia é a mesma, mas ao invés de movenext, use moveprevious.

 

E para fazer ir para a primeira quando chegar na última, dentro do command1, depois no movenext faça:

if colaborador.eof then
  colaborador.movefirst
end if

E para fazer ir para a última quando chegar na primeira, faça dentro no botão que irá ir para a anterior, após o moveprevious:

 

if colaborador.eof then
  colaborador.movelast
end if

Se tiver dúvidas avise...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Claudio Neto! Obrigado pela resposta! grande parte dos meus problemas foram resolvidos! Só que agora estou com um novo problema, qdo estiver na ultima foto quero que vá para a primeira. Você postou aqueles codigos pra mim só que estao dando erro. O Código esta assim:

 

Dim BD As DAO.Database
Dim Colaborador As DAO.Recordset

Private Sub Command1_Click()
Colaborador.MoveNext
	
	If Colaborador.EOF Then
	Colaborador.MoveFirst
	End If

Image1.Picture = LoadPicture(App.Path + "\" + Colaborador("Caminho"))
End Sub

Private Sub Command2_Click()
Colaborador.MovePrevious
	
	If Colaborador.EOF Then
	Colaborador.MoveLast
	End If

Image1.Picture = LoadPicture(App.Path + "\" + Colaborador("Caminho"))

End Sub

Private Sub Form_Load()

Set BD = OpenDatabase(App.Path + "\imagens1.mdb", False, False)
Set Colaborador = BD.OpenRecordset("Tabela")

Image1.Picture = LoadPicture(App.Path + "\" + Colaborador("Caminho"))

End Sub

em que estou errando? a condição esta errada?

O Erro que dá é assim: Nenhum registro Atual.

 

Quando aperto em debug, isso mostra que o erro esta aqui:

Image1.Picture = LoadPicture(App.Path + "\" + Colaborador("Caminho"))

 

mas como?

 

Obrigado pela atenção novamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, primeiro deixa eu corrigir um erro que eu mesmo coloquei.

 

Ao invés de :

Private Sub Command2_Click()
Colaborador.MovePrevious
	
	If Colaborador.EOF Then
	Colaborador.MoveLast
	End If

Image1.Picture = LoadPicture(App.Path + "\" + Colaborador("Caminho"))

End Sub

Faça:

Private Sub Command2_Click()
Colaborador.MovePrevious
	
	If Colaborador.BOF Then
	Colaborador.MoveLast
	End If

Image1.Picture = LoadPicture(App.Path + "\" + Colaborador("Caminho"))

End Sub

Mas isso não justifica o erro que está dando.

O erro está dando no command1 ou no command2. Se for no command2, o problema era isso que corrigi agora. Mas se for no command1, ai complicou, porque seu código está correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.