Bom dia, algém poderia me ajudar no seguinte problema ?
Estou tentando adaptar uma rotina que percorre registros de uma tabela e mostra o resultado na barra de progresso que
fica na barra de status do access se eu rodar a rotina sem o código de atualização dos campos funciona normal, mas se eu
rodar com o código de atualização da pau no access e ele fecha;
Option Compare Database
Option Explicit
Public Function PercorreRegistros()
On Error GoTo Fim
Dim rs As Recordset
Set rs = Forms![frmAbout].Form.Recordset
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...", 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...
'Me!teste1.Value = Me!teste.Value * 2
'------------------------------------------------
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
Private Sub cmdCalcula_Click()
Call PercorreRegistros
End Sub
Estou tentando adaptar uma rotina que percorre registros de uma tabela e mostra o resultado na barra de progresso que
fica na barra de status do access se eu rodar a rotina sem o código de atualização dos campos funciona normal, mas se eu
rodar com o código de atualização da pau no access e ele fecha;
Option Compare Database
Option Explicit
Public Function PercorreRegistros()
On Error GoTo Fim
Dim rs As Recordset
Set rs = Forms![frmAbout].Form.Recordset
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...", 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...
'Me!teste1.Value = Me!teste.Value * 2
'------------------------------------------------
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
Private Sub cmdCalcula_Click()
Call PercorreRegistros
End Sub
- Anexos
- ProgressBar.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (40 Kb) Baixado 84 vez(es)