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.
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