MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Problema com Foto no Form

    avatar
    flecha
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 304
    Registrado : 11/01/2012

    [Resolvido]Problema com Foto no Form Empty [Resolvido]Problema com Foto no Form

    Mensagem  flecha 26/2/2015, 17:01

    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:
    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?
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Problema com Foto no Form Empty Re: [Resolvido]Problema com Foto no Form

    Mensagem  Noobezinho 26/2/2015, 18:05

    Norimar

    Você tem 2 caminhos pra resolver isso:

    1º - Como está manipulando imagem (foto) , quando um registro não tem foto, evite deixar o campo localfoto vazio.
          Para isso, crie uma imagem  com fundo branco com a frase  "Foto indisponível".
          Deixe essa imagem junto com as outras e sempre que um registro não tiver foto, coloque essa imagem no seu lugar.
          Aqui tem um exemplo.

    2º  No teu código que verifica se os controles estão preenchido, faltou algo.
         Como faria se um campo não fosse necessário o preenchimento?
         Não tem como pois o código verifica todos, sem exceção.
       
         Abaixo, coloquei uma função pra fazer essa verificação em todas as caixa de texto que tem  a propriedade Tag (Marca) = "t".
         Então, vou em cada controle que quero forçar o preenchimento e coloco  na propriedade Marca(na folha de propriedades e
         coloco o  "t" sem as aspas.
         O código não ira verificar as caixas de texto que não tem  o t na propriedade Marca (Tag).

         Eis o código: pode usá-lo ou apenas como referencia.

    Function TestaCampos() As Boolean
       Dim I As Integer
       Dim strMsg As String
       Dim strTitle As String
         
       TestaCampos = True
       
    If Screen.ActiveForm!IDCliente <> 0 Then
       'inicia o loop pelos controle do formulário
       'a contagem começa em zero (0) até  x-1
       For I = 0 To Screen.ActiveForm.Count - 1
           'se o controle tem a marca(tag) = t então
           If Screen.ActiveForm(I).Tag = "t" Then
               'se o campo está vazio então
               If IsNull(Screen.ActiveForm(I)) Or Screen.ActiveForm(I) = "" Then
                   'emite mensagem acompanhado do nome do controle
                   strMsg = "É obrigatório o preenchimento do campo '" & Screen.ActiveForm(I).Name & "'!"
                   strTitle = "Campo em Branco"
                   MsgBox strMsg, 48, strTitle
                   'move o foco para o controle
                  Screen.ActiveForm(I).SetFocus
                   TestaCampos = False
                 
                   Exit Function
               End If
           End If
       Next I

    End If
    End Function


    [ ]'s

    Noob


    Última edição por Noobezinho em 13/3/2015, 14:33, editado 1 vez(es)


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    flecha
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 304
    Registrado : 11/01/2012

    [Resolvido]Problema com Foto no Form Empty Re: [Resolvido]Problema com Foto no Form

    Mensagem  flecha 26/2/2015, 19:48

    Testei a 2ª opção e esta dando um erro na chamada, por favor me corrija.
    Coloquei as TAGs em Marca.
    Salvei sua Função como Publica num Modulo

    Minha chamada da Função antiga estava assim:

    Código:

    If CpoExigido(Me) Then Cancel = -1 

    Alterei para:
    Código:

    If TestaCampos(Me) Then Cancel = -1

    Deu erro:
    Erro de Compilação - Numero de argumentos incorreto ou atribuição de propriedade inválida.

    E agora?
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Problema com Foto no Form Empty Re: [Resolvido]Problema com Foto no Form

    Mensagem  Noobezinho 26/2/2015, 21:30

    Uma função quando tem algo dentro de parenteses, é chamado de argumento.
    Nesse caso a função passada não tem nenhum argumento, mas retorna um valor booleano (true/false).

    Deve-se usar a função no evento ao fechar do formulário ou outra propriedade que irá salvar
    o registro.


    Exemplo de um botão fechar:

    Private Sub btnFechar_Click()
    On Error GoTo Err_btnFechar_Click

    If Not TestaCampos Then
    Exit Sub
    End If

    DoCmd.Close

    Exit_btnFechar_Click:
    Exit Sub

    Err_btnFechar_Click:
    MsgBox Error$
    Resume Exit_btnFechar_Click

    End Sub


    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    flecha
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 304
    Registrado : 11/01/2012

    [Resolvido]Problema com Foto no Form Empty Re: [Resolvido]Problema com Foto no Form

    Mensagem  flecha 26/2/2015, 23:08

    Valeu,

    Entendi! mudei a chamada para Call TestaCampos()
    Funcionou perfeito.
    Essa de criar a Tag no campo foi ótima, eu não sabia como criar as exceções no teste.


    A outra opção também funcionou.

    Mais uma vez Obrigado.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Problema com Foto no Form Empty Re: [Resolvido]Problema com Foto no Form

    Mensagem  Noobezinho 27/2/2015, 01:07

    Legal !!

    Valeu o retorno!

    Boa sorte !!


    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    Conteúdo patrocinado


    [Resolvido]Problema com Foto no Form Empty Re: [Resolvido]Problema com Foto no Form

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/5/2024, 10:56