É comum o programador percorrer uma tabela ou consulta com muitos registros executando determinada função, coletando valores, etc. Dependendo do número de registros a rotina poderá demorar um pouco. O usuário, se não visualizar nenhuma atividade, poderá pensar que o sistema travou ou não iniciou a execução do código solicitado. Para resolver isso o programador poderá mostrar o progresso da execução do código na barra de progressão do próprio MS-Access localizado na parte inferior esquerda da tela:
Vamos aprender a utilizar esse recurso simples de barra de progresso do MS-Access
Se você quer escrever apenas uma mensagem utilize o seguinte código:
--------------------------------------------------------------------------------------------------------------------------------
SysCmd acSysCmdSetStatus, "Apontamento de Campo concluído com sucesso."
----------------------------------------------------------------
Barra de Progressão:
são 3 comandos:
SysCmd 1, Texto, QtdTotal Valor inicial
SysCmd 2, Contador atualiza
SysCmd 3 esvazia barra de progressão
onde
1 = acSysCmdInitMeter
2 = acSysCmdUpdateMeter
3 = acSysCmdRemoveMeter
Exemplo:
No exemplo abaixo todos os registro de uma tabela chamada "Pagamentos" são percorridos
----------------------------------------------------------------
Public Function NomeFuncao()
On Error GoTo Fim
Dim db As DAO.Database
Set db = CurrentDb()
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("Pagamentos") 'tabela de contas a pagar
Dim lQtd As Long 'variável que recebe a quantidade total de registros
'conta o número de registros
rs.MoveLast
lQtd = rs.RecordCount
SysCmd 1, "Aguarde... Percorrendo a Tabela de Contas A Pagar...", lQtd 'inicia a barra de progressão
'variável que irá contar os registros
Dim lContador As Long
lContador = 0
'loop que irá percorrer a tabela
rs.MoveFirst 'vai para o primeiro registro
Do While Not rs.EOF
DoEvents 'executa em segundo plano
'------------------------------------------------
'aqui você insere seu código...
'------------------------------------------------
lContador = lContador + 1 'acrescenta 1 na quantidade
SysCmd 2, lContador 'atualiza visão da barra de progressão
rs.MoveNext 'proximo registro
Loop
MsgBox lContador & " registros foram percorridos"
SysCmd 3 'limpa a barra de progressão
Exit Function
Fim:
SysCmd 3
MsgBox Err.Number & " - " & Err.Description
Exit Function
End Function
----------------------------------------------------------------
Nenhum comentário:
Postar um comentário