Boas
antes de tudo abrigado pela ajuda mas pelo que percebi o exemplo é para colocar uma imagem como fundo do form.
espero estar errado nesta afirmação, se estiver as minhas desculpas.
eu na bd tenho cerca de 500 registos e cada um está relacionado com uma foto especifica guardada na pasta fotos isto tudo na raiz da pen, sempre que selecciono ou pesquiso um registo aparece o dados referentes a esse registo bem como a respectiva foto num campo que tenho na form.
as instruções que tenho para me aparecer a dita foto relacionada com o registo são:
Private Sub InserirFoto_Click()
' mensagem de ajuda para inserir uma imagem
MsgBox "As imagens deverão ter medidas entre os 100x100 e os 400x400," & vbCrLf & _
"1-Seleccione a pasta onde se localiza a imagem pretendida;" & vbCrLf & _
"2-Seleccione o nome da imagem, faça duplo clique e Ok." & vbCrLf & "" & vbCrLf & _
"Nota: os ficheiros .gif não podem ser animados.", vbInformation, "Ajuda"
' chamada a outra acção (sub) que executa a inclusão de uma imagem
getFileName
End Sub
Sub getFileName()
' procedimentos que exibem janelas de diálogo para procurar e incluir a imagem pretendida
Dim fileName As String
Dim result As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione a imagem a inserir"
.Filters.Add "Todos os ficheiros", "*.*"
.Filters.Add "JPEGs", "*.jpg"
.Filters.Add "Mapas de bits", "*.bmp"
.FilterIndex = 1
.AllowMultiSelect = False
.InitialFileName = CurrentProject.path
result = .Show
If (result <> 0) Then
fileName = Trim(.SelectedItems.Item(1))
Me![PastaFoto].Visible = True
Me![PastaFoto].SetFocus
Me![PastaFoto].Text = fileName
Me![Matricula].SetFocus
Me![PastaFoto].Visible = False
MensagemFoto.Visible = False
End If
End With
End Sub
Private Sub ApagarFoto_Click()
' acção que elimina o registo da imagem
Me![PastaFoto] = ""
hideLocalFoto 'chama outra sub
MsgBox "A imagem foi eliminada", vbInformation, "Confirmação"
MensagemFoto.Visible = True
DoCmd.GoToControl "Botas"
End Sub
Private Sub Form_AfterUpdate()
' após alterar um registo, exibe a imagem importada mantendo o foco em Botas
Me![Matricula].Requery
On Error Resume Next
exibeMensagem 'chama outra sub
showLocalFoto 'chama outra sub
If (IsRelative(Me!PastaFoto) = True) Then 'IsRelative trata-se de uma outra sub
Me![localfoto].Picture = path & Me![PastaFoto]
Else
Me![localfoto].Picture = Me![PastaFoto]
End If
End Sub
Private Sub PastaFoto_AfterUpdate()
' acção que mostra a imagem seleccionada no caminho (path)
On Error Resume Next
exibeMensagem 'chama outra Sub
showLocalFoto 'chama outra sub
If (IsRelative(Me!PastaFoto) = True) Then
Me![localfoto].Picture = path & Me![PastaFoto]
Else
Me![localfoto].Picture = Me![PastaFoto]
End If
End Sub
Private Sub Form_Current()
Dim res As Boolean
Dim fName As String
' procedimentos para a imagem caso esta não seja encontrada ou ainda não exista
path = CurrentProject.path
On Error Resume Next
MensagemFoto.Visible = False
If Not IsNull(Me![FOTO]) Then
res = IsRelative(Me![FOTO])
fName = Me![PastaFoto]
If (res = True) Then
fName = path & "\" & fName
End If
Me![localfoto].Picture = fName
showLocalFoto
Me.PaintPalette = Me![localfoto].ObjectPalette
If (Me![localfoto].Picture <> fName) Then
hideLocalFoto
MensagemFoto.Caption = "Imagem não localizada"
MensagemFoto.Visible = True
End If
Else
hideLocalFoto
MensagemFoto.Caption = "Registo sem imagem"
MensagemFoto.Visible = True
End If
End Sub
Sub exibeMensagem()
' mostra uma mensagem se o ficheiro da imagem não for encontrado ou não existir
If Not IsNull(Me![Imagem]) Then
MensagemFoto.Visible = False
Else
MensagemFoto.Visible = True
End If
End Sub
Function IsRelative(fName As String) As Boolean
' devolve se o nome de ficheiro incluir uma unidade (
ou caminho (\\)
IsRelative = (InStr(1, fName, ":") = 0) And (InStr(1, fName, "\\") = 0)
End Function
Sub hideLocalFoto()
' esconde o controlo da imagem
Me![localfoto].Visible = False
CaixaFoto.Visible = False
End Sub
Sub showLocalFoto()
' exibe o controlo da imagem
Me![localfoto].Visible = True
CaixaFoto.Visible = True
End Sub
que fui aproveitando e adaptando para a minha base de dados,só que não consigo sair daqui.
Cumprimentos Zeben