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


    Dois critérios em loop

    lupe
    lupe
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 458
    Registrado : 15/07/2010

    Dois critérios em loop Empty Dois critérios em loop

    Mensagem  lupe 23/2/2020, 19:06

    Olá!

    Gostaria de saber se é possível atribuir dois critérios no código abaixo que fica num sub-formulario. Além do filtro por data também gostaria que filtrasse pelo código do registro atual do campo "txtCodPA" do formulário pai.

    Código:
    Dim strHoje
    strHoje = Date
    Dim qData As Date
    qData = Format(Date, "mm/dd/yyyy")
    'variavel para referenciar o conjunto de registros
    Dim rs As DAO.Recordset
    'variavel que armazenar? o n? total de registros a serem percorridos no loop
    Dim Contador As Long
    'variavel que armazenar? a contagem de registros a cada passada do loop
    Dim ContaProgresso As Long
    'instancio o recordset, ou seja, o conjunto de registros da tabela
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblPlantioAplicItem WHERE PrevColheita >=#" & qData & "#")
    'movimento no recordset at? o ?ltimo registro para precisar o n? de registros na tabela
    rs.MoveLast
    'alimento a variavel Contador com o total de registros no conjunto de dados, que ? o recordset
    Contador = rs.RecordCount
    'movo para o primeiro registro do recordset
    rs.MoveFirst
    'utilizo o SysCmd para executar uma barra de progresso para indicar a que p? encontrar? o processamento
    SysCmd acSysCmdInitMeter, "Realizando as atualiza??es, aguarde...", Contador
    'inicio o loop que ir? do primeiro registro at? o ?ltimo
    'veja que j? sabemos a quantidade a ser percorrida na variavel Contador
    For ContaProgresso = 1 To Contador
    'atualizo as infroma??es da barra de progresso
    'mostrar? a evolu??o de 1 a cada valor passado do Contador
    SysCmd acSysCmdUpdateMeter, ContaProgresso
    'abro a edi??o na linha que estou passando
    rs.Edit
    'insiro o dado desejado
    rs("CicloAcum") = strHoje - rs("InicioPlantio")
    rs("CicloGerm") = rs("CicloAcum") - rs("IntervaloGerm")
    'atualizo o registro
    rs.Update
    'e vou para o pr?ximo
    rs.MoveNext
    'aqui acontece o loop, ou seja, retorno l? pra cima novamente
    'apartir do For ContaProgresso eu fa?o mesmo procedimento que fiz na linha de registro anterior
    Next ContaProgresso
    'quando o For ContaProgresso = 1 chegar ao total do Contador, o loop ter? chegado ao seu final.
    'agora fechamos o recordset
    rs.Close
    'removo a barra de progresso
    SysCmd acSysCmdRemoveMeter
    'e informo uma mensagem dizendo o n? de registros percorridos
    MsgBox "OK, Total de: " & Contador & " registros", vbInformation, "Conclu?do"
    Exit_TratareiErro:
    Exit Sub
    'se algo impedir o funcionamento do c?digo, emite uma mensagem informando ao usu?rio qual o erro
    TratareiErro:
    MsgBox "Ocorreu uma falha neste processo." _
    & vbCrLf & "Trata-se do erro n?: " & Err.Number _
    & vbCrLf & "Descri??o: " & Err.Description, vbCritical, "Erro inesperado"
    Exit Sub
    Desde já, obrigado!


    .................................................................................
    Dividir conhecimentos é contribuir para a evolução da humanidade.

      Data/hora atual: 28/3/2024, 12:20