ANTONILDO CORDEIRO 30/11/2020, 16:35
Boa tarde, Cicero!!!
experimente usar este codigo no seu formulario espero ajudar
Dim path As String
Private Sub Form_RecordExit(Cancel As Integer)
' Ocultar o rótulo da mensagem de erro para reduzir
' a intermitência durante a navegação entre os registros.
ErrorMsg.Visible = False
End Sub
Private Sub AddPicture_Click()
' Usar a caixa de diálogo Abrir arquivo a fim de escolher
' um nome de arquivo para a foto do funcionário.
getFileName
End Sub
Private Sub RemovePicture_Click()
' Remover o nome do arquivo do registro do funcionário e
' exibir o rótulo da mensagem de erro.
Me![ImagePath] = ""
hideImageFrame
ErrorMsg.Visible = True
End Sub
Private Sub Form_AfterUpdate()
' Consultar novamente a caixa de combinação Supervisor depois que um
' registro for alterado. Em seguida, mostrar o rótulo da mensagem de erro
' se não houver um nome de arquivo para o registro de funcionário ou
' exibir a imagem se existir um nome de arquivo.
On Error Resume Next
showErrorMessage
showImageFrame
If (IsRelative(Me!ImagePath) = True) Then
Me![ImageFrame].Picture = path & Me![ImagePath]
Else
Me![ImageFrame].Picture = Me![ImagePath]
End If
End Sub
Private Sub ImagePath_AfterUpdate()
' Depois de selecionar uma imagem de funcionário, exiba-a.
On Error Resume Next
showErrorMessage
showImageFrame
If (IsRelative(Me!ImagePath) = True) Then
Me![ImageFrame].Picture = path & Me![ImagePath]
Else
Me![ImageFrame].Picture = Me![ImagePath]
End If
End Sub
Private Sub Form_Current()
' Exiba a foto do registro de funcionário atual se a imagem
' existir. Se o nome de arquivo não existir mais ou estiver
' em branco para o funcionário atual, defina a legenda do rótulo
' da mensagem de erro com a mensagem apropriada.
Dim res As Boolean
Dim fName As String
path = CurrentProject.path
On Error Resume Next
ErrorMsg.Visible = False
If Not IsNull(Me![FOTO]) Then
res = IsRelative(Me![FOTO])
fName = Me![ImagePath]
If (res = True) Then
fName = path & "\" & fName
End If
Me![ImageFrame].Picture = fName
showImageFrame
Me.PaintPalette = Me![ImageFrame].ObjectPalette
If (Me![ImageFrame].Picture <> fName) Then
hideImageFrame
ErrorMsg.Caption = "Foto não encontrada"
ErrorMsg.Visible = True
End If
Else
hideImageFrame
ErrorMsg.Caption = "Clique em 'Adicionar/alterar' para adicionar uma foto 65x63"
ErrorMsg.Visible = True
End If
End Sub
Sub getFileName()
' Exibe a caixa de diálogo Abrir arquivo a fim de escolher um nome
' de arquivo para o registro de funcionário atual. Se o usuário
' selecionar um arquivo, essa função exibe-o no controle de imagem.
Dim fileName As String
Dim result As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Selecionar foto"
.Filters.Add "Todos os arquivos", "*.*"
.Filters.Add "JPEGs", "*.jpg"
.Filters.Add "Bitmaps", "*.bmp"
.Filters.Add "Pngs", "*.png"
.FilterIndex = 4
.AllowMultiSelect = False
.InitialFileName = CurrentProject.path
result = .Show
If (result <> 0) Then
fileName = Trim(.SelectedItems.Item(1))
Me![ImagePath].Visible = True
Me![ImagePath].SetFocus
Me![ImagePath].Text = fileName
Me![CODIGO].SetFocus
Me![ImagePath].Visible = False
End If
End With
End Sub
Sub showErrorMessage()
' Exibir o rótulo da mensagem de erro se o arquivo de imagem não estiver disponível.
If Not IsNull(Me![FOTO]) Then
ErrorMsg.Visible = False
Else
ErrorMsg.Visible = True
End If
End Sub
Function IsRelative(fName As String) As Boolean
' Retorna False se o nome de arquivo contiver uma unidade ou caminho UNC
IsRelative = (InStr(1, fName, ":") = 0) And (InStr(1, fName, "\\") = 0)
End Function
Sub hideImageFrame()
' Ocultar o controle de imagem
Me![ImageFrame].Visible = False
End Sub
Sub showImageFrame()
' Exibir o controle de imagem
Me![ImageFrame].Visible = True
End Sub