MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Ajuda com Loop

    Compartilhe
    avatar
    Sidney
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 330
    Registrado : 08/10/2012

    [Resolvido]Ajuda com Loop

    Mensagem  Sidney em 27/11/2018, 12:59

    Pessoal, Bom dia!

    Neste código abaixo, eu possou uma variável chamada, varNFamSisAtual, que a partir dele é feito um calculo nos código que o segue, eu preciso fazer que este receba o valores de um campo chamada CodFamSis da Tab_Principal, fazendo com que ele calcule cada valor recebido da tabela. A idéia e fazer que o codigo calcule cada valor recbido, e mais a frente ele atualizar uma determinada tabela,

    Código:
    Public Function Caso_01()
    'CASO_01- Existencia de criancas de 4 e 6 anos fora da escola.
    'Critérios: Idade= Entre 4 e 6 anos, UniPesMor = 1-ATIVO e FreqEscCreche = 0

    Dim Rst_Caso_01 As DAO.Recordset
    Dim strSql As String
    Dim varNFamSisAtual As Variant  ' Numero do N_FAM_SIS Atual
    Dim intResulIdade As Integer
    Dim strResulFinal As String
        
    ' Inseri novos N_FAM_SIS na tab_CasosNotaveisAtual.
    strSql = "INSERT INTO tab_CasosNotaveisAtual ( N_FAM_SIS ) "
    strSql = strSql & "SELECT Tab_Principal.CodFamSis FROM Tab_Principal "
    strSql = strSql & "WHERE  Tab_Principal.CodFamSis  NOT IN (SELECT N_FAM_SIS FROM tab_CasosNotaveisAtual) "
    strSql = strSql & "AND TipoSitCampFam='1' OR TipoSitCampFam='2' OR TipoSitCampFam='3' ORDER BY Tab_Principal.CodFamSis "
    CurrentDb.Execute (strSql)

    varNFamSisAtual = 531
                    
    'Procura idades entre 4 e 6 anos,
    Set Rst_Caso_01 = CurrentDb.OpenRecordset("SELECT COUNT (idade) FROM tab_Moradores " _
                                     & "WHERE Idade BETWEEN 4 AND 6 AND UnidPesqMor='1-ATIVO' AND FreqEscCreche=0 AND CodFamSis=" & varNFamSisAtual & "")
                                          
     intResulIdade = Rst_Caso_01(0)
     Set Rst_Idade4a6 = Nothing
     
    'Verifica resultado onde >=1 "SIM" e =0 "NAO"
            If intResulIdade >= 1 Then
                    strResulFinal = "SIM"
            Else
                    strResulFinal = "NAO"
            End If

    'Atualiza dados do campo Caso_01 na tab_CasosNotaveisAtual.
    strSql = "UPDATE tab_CasosNotaveisAtual SET Caso_01= '" & strResulFinal & "'  WHERE N_FAM_SIS=" & varNFamSisAtual & ""
    CurrentDb.Execute (strSql)
      
       Debug.Print "Idade" & "-" & strResulFinal

    End Function

    Att: Sindney
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

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

    Re: [Resolvido]Ajuda com Loop

    Mensagem  caiosouza em 27/11/2018, 16:22

    Boa noite, utilize o While para este caso, tentei fazer em cima do seu código mais ainda não entendi muito bem, tente implementar isso no seu código.

    Código:
        Dim tblPrincipal As DAO.Recordset
        Set tblPrincipal = CurrentDb.Execute("SELECT CodFamSis FROM Tab_Principal")
        While Not tblPrincipal.EOF
            tblPrincipal.AddNew
                RsTabelaDestino!NomeCampoTabelaDestipo = tblPrincipal!CampoDeOrigem
                RsTabelaDestino2!NomeCampoTabelaDestipo = tblPrincipal!CampoDeOrigem2
            tblPrincipal.Update
            tblPrincipal.MoveNext
        Loop
        tblPrincipal.Close
        tblPrincipal = Nothing


    .................................................................................
    A persistência leva ao sucesso!
    avatar
    Sidney
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 330
    Registrado : 08/10/2012

    Re: [Resolvido]Ajuda com Loop

    Mensagem  Sidney em 27/11/2018, 19:29

    Valeu parceiro, consegui reolver aqui, muito obrigado!!!

    att; Sidney

      Data/hora atual: 16/12/2018, 11:21