Olá,
Estou com um problema que gostaria de contorná-lo:
Em um Form tenho essa sub para colocar a foto no seu campo do form no evento Atual:
Acontece que quando ele abre um form que o campo LocalFoto da tabela, onde está o endereço da foto, está com o nome do arquivo mas esse arquivo (foto) não existe a sub interpreta um erro e deixa o campo da LocalFoto como Null.
Como no form no evento Antes de Atualizar tem uma chamada para verificar os controles não preenchidos (vide código abaixo) ele acusa erro no Campo LocalFoto Vazio não deixando ir para o próximo ou anterior (registro) e como a mensagem que coloquei tem que clicar Ok e depois ESC e o registro volta ao normal sem a foto, mas sem foto pois não existe no endereço procurado.
Será que consegui me explicar?
Estou com um problema que gostaria de contorná-lo:
Em um Form tenho essa sub para colocar a foto no seu campo do form no evento Atual:
- Código:
On Error GoTo Limpa
If IsNull(Me.LocalFoto) = False Then
Me.Foto.Picture = Me.LocalFoto
Else
Me.Foto.Picture = ""
End If
Sai:
Exit Sub
Limpa:
Me.LocalFoto = Null
Me.Foto.Picture = ""
Resume Sai
Acontece que quando ele abre um form que o campo LocalFoto da tabela, onde está o endereço da foto, está com o nome do arquivo mas esse arquivo (foto) não existe a sub interpreta um erro e deixa o campo da LocalFoto como Null.
Como no form no evento Antes de Atualizar tem uma chamada para verificar os controles não preenchidos (vide código abaixo) ele acusa erro no Campo LocalFoto Vazio não deixando ir para o próximo ou anterior (registro) e como a mensagem que coloquei tem que clicar Ok e depois ESC e o registro volta ao normal sem a foto, mas sem foto pois não existe no endereço procurado.
- Código:
Public Function CpoExigido(ByVal UmForm As Form) As Boolean
' Verifica se todos os controles Caixa de texto contém dados
Dim Ctl As Control
Dim Num As Integer
On Error GoTo Err_CpoExigido
CpoExigido = False
Num = 0
For Each Ctl In UmForm
If Ctl.ControlType = acTextBox Then
If Ctl = "" Or IsNull(Ctl) Then
Num = 1
Exit For
End If
End If
Next Ctl
If Num = 1 Then
MsgBox "O campo " & Ctl.Name & " está vazio." & vbCr & _
"Verifique e preencha." & vbCr & "Para cancelar a Inclusão, tecle (Esc) após sair deste aviso.", _
vbInformation, "Faltam dados..."
CpoExigido = True
Else
CpoExigido = False
End If
Exit_CpoExigido:
On Error Resume Next
If Not (Ctl Is Nothing) Then
Set Ctl = Nothing
End If
Exit Function
Err_CpoExigido:
Select Case Err
Case 0
Resume Next
Case Else
MsgBox Err.Description, vbInformation, "Erro: " & CStr(Err.Number)
End Select
End Function
Será que consegui me explicar?