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

3 participantes

    [Resolvido]Loop pula segunda linha do subform

    Cláudio Machado
    Cláudio Machado
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1621
    Registrado : 17/03/2011

    [Resolvido]Loop pula segunda linha do subform Empty [Resolvido]Loop pula segunda linha do subform

    Mensagem  Cláudio Machado 18/4/2019, 19:47

    Boa tarde galera.
    Me deparei com uma coisa que está esquentando minha mente.
    Quando clico em um botão no form principal o código pega todos os registros do subform e grava em um campo do form Master.
    Até ai tudo bem, claro, se não estivesse pulando sempre a segunda linha do subform.
    Segue o código:

    Código:


    Dim x As Integer
    ' If Me.Dirty Then
     x = MsgBox("Deseja salvar as alterações do Registro?", vbQuestion + vbYesNo, "Gravar Dados")
       
        Me.tag_coluna1 = Null
        Me.tag_coluna2 = Null
       
        Dim rs As DAO.Recordset
        Set rs = Me.documentos_detalhes.Form.RecordsetClone

        With rs
            Do While Not rs.EOF
              If IsNull(Me.tag_coluna1) Or Me.tag_coluna1 = "" Then
              Me.tag_coluna1 = rs!descricao
              ElseIf IsNull(Me.tag_coluna2) Or Me.tag_coluna2 = "" Then
              Me.tag_coluna2 = rs!periodo
                Else
              Me.tag_coluna1 = Me.tag_coluna1 & "," & rs!descricao
              Me.tag_coluna2 = Me.tag_coluna2 & "," & rs!periodo
            End If
            rs.MoveNext
            Loop
        End With
        rs.Close
        Set rs = Nothing
    '    DoCmd.Close acForm, "documentos"
     
     If x = vbNo Then
     Me.Undo
     End If

    Ou seja, toda vez que clico em gravar, ele simplesmente ignora a segunda linha do sub e grava o restante normal, da 1º e 3º em diante.
    Abraço


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  AQUI.
    Não esqueça de clicar no Joinha [Resolvido]Loop pula segunda linha do subform 90dssg para agradecer a dica que solucionou seu problema.
    caiosouza
    caiosouza
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 419
    Registrado : 05/12/2016

    [Resolvido]Loop pula segunda linha do subform Empty Re: [Resolvido]Loop pula segunda linha do subform

    Mensagem  caiosouza 23/4/2019, 12:13

    Tenta assim:

    Código:
    Dim x As Integer
    ' If Me.Dirty Then
     x = MsgBox("Deseja salvar as alterações do Registro?", vbQuestion + vbYesNo, "Gravar Dados")
       
        Me.tag_coluna1 = Null
        Me.tag_coluna2 = Null
       
        Dim rs As DAO.Recordset
        Set rs = Me.documentos_detalhes.Form.RecordSource
        rs.MoveFirst

            Do While Not rs.EOF
              If IsNull(Me.tag_coluna1) Or Me.tag_coluna1 = "" Then
                 Me.tag_coluna1 = rs!descricao
              ElseIf IsNull(Me.tag_coluna2) Or Me.tag_coluna2 = "" Then
                 Me.tag_coluna2 = rs!periodo
              Else
                 Me.tag_coluna1 = Me.tag_coluna1 & "," & rs!descricao
                 Me.tag_coluna2 = Me.tag_coluna2 & "," & rs!periodo
              End If
            rs.MoveNext
            Loop

        rs.Close
        Set rs = Nothing

    '    DoCmd.Close acForm, "documentos"

    If x = vbNo Then Me.Undo


    .................................................................................
    Caio Souza

    Engenheiro de Software
    Cláudio Machado
    Cláudio Machado
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1621
    Registrado : 17/03/2011

    [Resolvido]Loop pula segunda linha do subform Empty Re: [Resolvido]Loop pula segunda linha do subform

    Mensagem  Cláudio Machado 25/4/2019, 15:16

    Bom dia.
    Obrigado por sua auda Caio, não respondi antes, pois estava adoentado.

    Está causando Erro "Tipos incompatíveis" nesta linha:


    Set rs = Me.documentos_detalhes.Form.RecordSource

    Modifiquei ela para:

    Set rs = Me.documentos_detalhes.Form.RecordsetClone

    Mas continua o mesmo problema.




    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  AQUI.
    Não esqueça de clicar no Joinha [Resolvido]Loop pula segunda linha do subform 90dssg para agradecer a dica que solucionou seu problema.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    Registrado : 15/03/2013

    [Resolvido]Loop pula segunda linha do subform Empty Re: [Resolvido]Loop pula segunda linha do subform

    Mensagem  ahteixeira 25/4/2019, 16:12

    Olá a todos,

    Verifique assim:
    Código:
    Dim x As Integer
    ' If Me.Dirty Then
     x = MsgBox("Deseja salvar as alterações do Registro?", vbQuestion + vbYesNo, "Gravar Dados")
       
        Me.tag_coluna1 = Null
        Me.tag_coluna2 = Null
       
        Dim rs As DAO.Recordset
        Set rs = Me.documentos_detalhes.Form.RecordsetClone

        With rs
            Do While Not rs.EOF
                  If Len(Me.tag_coluna1 & "") = 0 Then
                        Me.tag_coluna1 = rs!descricao
                  ElseIf Len(Me.tag_coluna2 & "") = 0 Then
                        Me.tag_coluna2 = rs!periodo
                  Else
                        Me.tag_coluna1 = Me.tag_coluna1 & "," & rs!descricao
                        Me.tag_coluna2 = Me.tag_coluna2 & "," & rs!periodo
                  End If
                rs.MoveNext
            Loop
        End With
        rs.Close
        Set rs = Nothing
    '    DoCmd.Close acForm, "documentos"
     
        If x = vbNo Then
          Me.Undo
        End If

    Verifique também as condições se estão corretas ou tem dados para processar.
    Se o problema persistir, será melhor montar um pequeno exemplo e partilhar a base de dados para se testar.

    Abraço a todos
    Cláudio Machado
    Cláudio Machado
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1621
    Registrado : 17/03/2011

    [Resolvido]Loop pula segunda linha do subform Empty Re: [Resolvido]Loop pula segunda linha do subform

    Mensagem  Cláudio Machado 25/4/2019, 16:34

    Boa tarde Teixeira.
    Eu já havia testado desta forma e sem sucesso também.

    Estou postando a parte que contém o problema.

    O que estou fazendo é pegar todos os dados do subform e registrar em campos Tag1 e Tag2 do form principal.
    Porquê isso?
    Porque quando o usuário for buscar no form de consulta o sistema efetua a busca também por estes campos.
    Compreendeu?

    Fico no aguardo e obrigado pela ajuda.
    Anexos
    [Resolvido]Loop pula segunda linha do subform AttachmentGESDOCS_MAXIMO.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (486 Kb) Baixado 19 vez(es)


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  AQUI.
    Não esqueça de clicar no Joinha [Resolvido]Loop pula segunda linha do subform 90dssg para agradecer a dica que solucionou seu problema.
    Cláudio Machado
    Cláudio Machado
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1621
    Registrado : 17/03/2011

    [Resolvido]Loop pula segunda linha do subform Empty Re: [Resolvido]Loop pula segunda linha do subform

    Mensagem  Cláudio Machado 29/4/2019, 16:39

    Boa tarde amigos.
    Alguma sugestão?
    Obrigado


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  AQUI.
    Não esqueça de clicar no Joinha [Resolvido]Loop pula segunda linha do subform 90dssg para agradecer a dica que solucionou seu problema.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    Registrado : 15/03/2013

    [Resolvido]Loop pula segunda linha do subform Empty Re: [Resolvido]Loop pula segunda linha do subform

    Mensagem  ahteixeira 29/4/2019, 20:30

    Olá Claudio,

    Tive oportunidade de espreitar o projeto e apresenta erros de compilação.

    No entanto verifique se não é isto:
    Código:
           Do While Not rs.EOF
                   If Len(Me.tag_coluna1 & "") = 0 Then
                        Me.tag_coluna1 = rs!descricao
                   Else
                        Me.tag_coluna1 = Me.tag_coluna1 & "," & rs!descricao
                   End If
                  
                   If Len(Me.tag_coluna2 & "") = 0 Then
                        Me.tag_coluna2 = rs!periodo
                   Else
                        Me.tag_coluna2 = Me.tag_coluna2 & "," & rs!periodo
                   End If
                rs.MoveNext
            Loop

    Caso não seja isso, compile verifique e volte a partilhar sem erros de código.

    Abraço
    Cláudio Machado
    Cláudio Machado
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1621
    Registrado : 17/03/2011

    [Resolvido]Loop pula segunda linha do subform Empty Re: [Resolvido]Loop pula segunda linha do subform

    Mensagem  Cláudio Machado 30/4/2019, 22:10

    Boa noite Teixeira.
    Perfeito irmão!!

    Resolvido com este último código.
    Obrigado pela força.
    Agradeço ao Caio também pela atenção dispensada.

    cheers


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  AQUI.
    Não esqueça de clicar no Joinha [Resolvido]Loop pula segunda linha do subform 90dssg para agradecer a dica que solucionou seu problema.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    Registrado : 15/03/2013

    [Resolvido]Loop pula segunda linha do subform Empty Re: [Resolvido]Loop pula segunda linha do subform

    Mensagem  ahteixeira 1/5/2019, 08:23

    Olá Cláudio,

    Obrigado pelo retorno, o fórum agradece.

    Abraço a todos

      Data/hora atual: 1/8/2021, 11:58