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]Executar uma ação depois do For Each

    avatar
    WEBE
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 31/01/2011

    [Resolvido]Executar uma ação depois do For Each Empty [Resolvido]Executar uma ação depois do For Each

    Mensagem  WEBE Seg 19 Set - 10:48

    Prezados senhores,

    Gostei muito desta ideia e quero reproduzi-la e preciso da ajuda de vocês. (Retirado aqui do Forum mesmo | Good Guy)

    Adaptei aqui,

    Public Function VerificarCamposVazios()

    '#Código de Eduardo Machado (Good Guy) - 2015
    On Error Resume Next
    Dim strMsg As String
    Dim ctl As Control




    Const conVinculado = -1      'Colocar -1 na propriedade Marca da aba Outra de cada campo do formulário que deseja verificar


    For Each ctl In Me.Controls
       If ctl.Tag = conVinculado Then
           Select Case ctl.ControlType
           Case acTextBox, acComboBox
           
           If IsNull(ctl.Value) Or ctl.Value = "" Or ctl.Value = Null Then
         
               
            sCampoX = ctl.Name
           
            MsgBox "O campo " & sCampoX & " está vazio. Verifique !!!", vbInformation, "Checa Campos"  'Ou, com vbCritical
           
           
            Exit For
           
           End If
           
           End Select
     
       
       End If
       
     
    Next ctl


    End Function


    Preciso executar um insert em uma tabela, mas apenas quando os campos obrigatórios (-1) estiverem preenchidos.
    Não sei em qual lugar do código eu coloco esta ação.

    Exemplo: Se tenho 3 campos obrigatorios, este codigo acima, me informa se ele está vazio e interrompe e move o foco para este campo e assim até terminar o loop. Quando os tres tiverem preenchido ele executa a acao que eu quero.

    Desde já, grato.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3602
    Registrado : 21/04/2011

    [Resolvido]Executar uma ação depois do For Each Empty Re: [Resolvido]Executar uma ação depois do For Each

    Mensagem  Marcelo David Seg 19 Set - 11:52

    Bom dia, tudo certo?
    Não cheguei a ver a função que você está usando, porém, imagino que se ela retornar um booleano poderá validar se salva ou não as informações.

    Caso queira dar uma olhada em uma forma bem legal de validação, que desenvolvi e disponibilizei um vídeo de como implementar, acesso o meu canal clicando aqui..

    Nesse vídeo, mostro passo a passo como validar preenchimento de campos, destacando os campos necessários, todos de uma vez.

    Caso queira permanecer na função que já está tentando usar, poderemos prosseguir também.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Executar uma ação depois do For Each Marcel11
    avatar
    WEBE
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 31/01/2011

    [Resolvido]Executar uma ação depois do For Each Empty Re: [Resolvido]Executar uma ação depois do For Each

    Mensagem  WEBE Seg 19 Set - 13:45

    Olá obrigado por responder.

    Coincidencia ou não já sigo o seu cana há um tempo e vi o video. Muito bom.

    O codigo mostrado no video é muito similar.

    Poderia me ajudar adapatar?

    No meu caso, eu estou usando campos não vinculados em um form para inserir dados em um subformulario. "Meu insert tá funcionando certinho"
    No entanto, antes de executar o o insert, eu verifico se todos os campos obrigatorios foram preenchidos. (Está Ok também)
    Ele me avisa se tiver campos vazios etc, porem ele não está respeitando as condições. Se tiver vazio ele avisa, mas executa o insert do mesmo jeito, ao passo que ele deveria para o codigo, deixar eu preecher e só depois de tudo pronto ele executar o insert.

    Não sei em qual lugar do código acima devo colocar o meu comando ou se devo colocar mais algum if...

    Tentei com a sua orientação do video e estóu com o mesmo dilema.


    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3602
    Registrado : 21/04/2011

    [Resolvido]Executar uma ação depois do For Each Empty Re: [Resolvido]Executar uma ação depois do For Each

    Mensagem  Marcelo David Seg 19 Set - 14:31

    Opa, grato por estar inscrito.
    Poste aqui o código completo. Copie e cole aqui usando a tag [code], que facilita a leitura.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Executar uma ação depois do For Each Marcel11
    avatar
    WEBE
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 31/01/2011

    [Resolvido]Executar uma ação depois do For Each Empty Re: [Resolvido]Executar uma ação depois do For Each

    Mensagem  WEBE Seg 19 Set - 14:51

    Public Function VerificarCamposVazios()

    '#Código de Eduardo Machado (Good Guy) - 2015
    On Error Resume Next
    Dim strMsg As String
    Dim ctl As Control

    Const conVinculado = -1 'Colocar -1 na propriedade Marca da aba Outra de cada campo do formulário que deseja verificar

    For Each ctl In Me.Controls
    If ctl.Tag = conVinculado Then
    Select Case ctl.ControlType
    Case acTextBox, acComboBox

    If IsNull(ctl.Value) Or ctl.Value = "" Or ctl.Value = Null Then
    sCampoX = ctl.Name

    MsgBox "O campo " & sCampoX & " está vazio. Verifique !!!", vbInformation, "Checa Campos" 'Ou, com vbCritical

    Exit For

    End If

    End Select

    End If

    Next ctl

    End Function




    Na verdade já está completo rrsrsr.

    Preciso inserir o codigo abaixo em algum lugar aí em cima, apenas quando tudo estiver preenchido.

    CurrentDb.Execute "INSERT INTO tbl_NF_Itens(id_NF,nome_produto,qtd,vUnitario,vSubTotalLinha,aliq_ICMS,aliq_IPI,VIPI,difal,frete,total) VALUES ('" & id & "', '" & nome_produto & "','" & qtd & "','" & vUnitario & "','" & vSubTotalLinha & "','" & aliq_ICMS & "','" & aliq_IPI & "','" & VIPI & "','" & difal & "','" & frete & "','" & total & "')"
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3602
    Registrado : 21/04/2011

    [Resolvido]Executar uma ação depois do For Each Empty Re: [Resolvido]Executar uma ação depois do For Each

    Mensagem  Marcelo David Seg 19 Set - 16:41

    WEBE escreveu:Na verdade já está completo rrsrsr.
    Pensei que já houvesse algum código tento a validação, rsrs.

    Vamos lá.
    Tente isso:

    Código:
    Public Function VerificarCamposVazios()

    '#Código de Eduardo Machado (Good Guy) - 2015
    On Error Resume Next
    Dim strMsg As String
    Dim ctl As Control
    Dim CamposVazios as Boolean

    Const conVinculado = -1 'Colocar -1 na propriedade Marca da aba Outra de cada campo do formulário que deseja verificar

    For Each ctl In Me.Controls
     If ctl.Tag = conVinculado Then
     Select Case ctl.ControlType
     Case acTextBox, acComboBox

     If IsNull(ctl.Value) Or ctl.Value = "" Or ctl.Value = Null Then
     sCampoX = ctl.Name

     MsgBox "O campo " & sCampoX & " está vazio. Verifique !!!", vbInformation, "Checa Campos" 'Ou, com vbCritical
     
     Exit Function
     'Exit For

     End If

     End Select

     End If

    Next ctl

    CurrentDb.Execute "INSERT INTO tbl_NF_Itens(id_NF,nome_produto,qtd,vUnitario,vSubTotalLinha,aliq_ICMS,aliq_IPI,VIPI,difal,frete,total) VALUES ('" & id & "', '" & nome_produto & "','" & qtd & "','" & vUnitario & "','" & vSubTotalLinha & "','" & aliq_ICMS & "','" & aliq_IPI & "','" & VIPI & "','" & difal & "','" & frete & "','" & total & "')"

    End Function

    A tentativa é sair da função da função e não chegar aonde é feito a inserção.


    Veja se funciona por favor. Aguardo.


    Última edição por Marcelo David em Seg 19 Set - 16:43, editado 1 vez(es) (Motivo da edição : Corrigir o título da função)


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Executar uma ação depois do For Each Marcel11
    avatar
    WEBE
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 31/01/2011

    [Resolvido]Executar uma ação depois do For Each Empty Re: [Resolvido]Executar uma ação depois do For Each

    Mensagem  WEBE Seg 19 Set - 20:22

    Perfeito amigo. Muito Obrigado.
    Deu certinho.

    Marcelo David gosta desta mensagem

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3602
    Registrado : 21/04/2011

    [Resolvido]Executar uma ação depois do For Each Empty Re: [Resolvido]Executar uma ação depois do For Each

    Mensagem  Marcelo David Seg 19 Set - 23:32

    Grato pelo retorno! Very Happy


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Clique aqui e conheça o treinamento.
    [Resolvido]Executar uma ação depois do For Each Marcel11

      Data/hora atual: Sab 1 Out - 11:44