Barra de progreso con recordset

Saludos gracias por tu ayuda, necesito un progress bar, pero en realidad no se como echarlo andar a continuación te envío el código de la búsqueda que tengo, para que por favor me indiques en que evento programo el progress bar y de que manera.
Dim RSCONSULTA As ADODB.Recordset
Dim CAMPO As String
Private Sub CmdBuscar_Click()
If Text1.Text = "" Then
MsgBox "ESPECIFIQUE UN CRITERIO", vbCritical, "ERROR"
Exit Sub
End If
If Op(0).Value = True Then
Set RSCONSULTA = FILTRAR("SELECT * FROM Estadistica WHERE " & CAMPO & "='" & Text1.Text & "'")
Set DataGrid1.DataSource = RSCONSULTA
' Exit Sub
End If
Set RSCONSULTA = FILTRAR("SELECT * FROM Estadistica WHERE " & CAMPO & "='" & Text1.Text & "'")
Set DataGrid1.DataSource = RSCONSULTA
'VINCULA TODOS LOS CUADROS DE TEXTO CON EL RECORDSET
Set TxtCve_esc.DataSource = RSCONSULTA
Set TxtNom_esc.DataSource = RSCONSULTA
Set TxtTurno.DataSource = RSCONSULTA
Set TxtCve_Mpio.DataSource = RSCONSULTA
Set TxtMun.DataSource = RSCONSULTA
Set TxtCve_Loc.DataSource = RSCONSULTA
Set TxtLoc.DataSource = RSCONSULTA
Set TxtDom_esc.DataSource = RSCONSULTA
Set TxtSector.DataSource = RSCONSULTA
Set TxtZonesc.DataSource = RSCONSULTA
Set TxtDSR.DataSource = RSCONSULTA
Set TxtDirector.DataSource = RSCONSULTA
Set TxtCiclo.DataSource = RSCONSULTA
Set TxtNodoc.DataSource = RSCONSULTA
'INDICA A QUE CAMPO SERA VINCULADO CADA CUADRO DE TEXTO
TxtCve_esc.DataField = "Cve_esc"
TxtTurno.DataField = "Turno"
TxtNom_esc.DataField = "Nom_esc"
TxtCve_Mpio.DataField = "Cve_mpio"
TxtMun.DataField = "Mun"
TxtCve_Loc.DataField = "Cve_Loc"
TxtLoc.DataField = "Loc"
TxtDom_esc.DataField = "Dom_esc"
TxtDirector.DataField = "Director"
TxtSector.DataField = "Sector"
TxtZonesc.DataField = "Zonesc"
TxtDSR.DataField = "Dsr"
TxtCiclo.DataField = "Ciclo"
TxtNodoc.DataField = "nodoc"
With DataGrid1.Columns(0) '
.Caption = "Insc._H_1º"
.Width = Me.TextWidth(String(10, "S"))
'.NumberFormat = "##,##0.0"
'.Visible = False
DataGrid1.Columns(0).Locked = True
DataGrid1.Columns(0).Alignment = vbCenter
End With
With DataGrid1.Columns(1) '
.Caption = "Exist._H_1º"
.Width = Me.TextWidth(String(10, "S"))
'.NumberFormat = "##,##0.0"
'.Visible = False
DataGrid1.Columns(1).Locked = True
DataGrid1.Columns(1).Alignment = vbCenter
End With
With DataGrid1.Columns(2) '
.Caption = "Aprob._H_1º"
.Width = Me.TextWidth(String(10, "S"))
'.NumberFormat = "##,##0.0"
'.Visible = False
DataGrid1.Columns(2).Locked = True
DataGrid1.Columns(2).Alignment = vbCenter
End With
End sub
Private Sub_Form_Load()
PROCEDIMIENTO QUE CREA UNA CONECCION HACIA LA BASE DE DATOS
conectar
'CARGA LA TABLA ALUMNOS EN UN RECORDSET
Set RSCONSULTA = ABRIRTABLA("Estadistica")
'ASIGNA EL RECORDSET AL DATAGRID
Set DataGrid1.DataSource = RSCONSULTA
' VINCULA TODOS LOS CUADROS DE TEXTO CON EL RECORDSET
Set TxtCve_esc.DataSource = RSCONSULTA
Set TxtNom_esc.DataSource = RSCONSULTA
Set TxtTurno.DataSource = RSCONSULTA
Set TxtCve_Mpio.DataSource = RSCONSULTA
Set TxtMun.DataSource = RSCONSULTA
Set TxtCve_Loc.DataSource = RSCONSULTA
Set TxtLoc.DataSource = RSCONSULTA
Set TxtDom_esc.DataSource = RSCONSULTA
Set TxtSector.DataSource = RSCONSULTA
Set TxtZonesc.DataSource = RSCONSULTA
Set TxtDSR.DataSource = RSCONSULTA
Set TxtDirector.DataSource = RSCONSULTA
Set TxtCiclo.DataSource = RSCONSULTA
Set TxtNodoc.DataSource = RSCONSULTA
'INDICA A QUE CAMPO SERA VINCULADO CADA CUADRO DE TEXTO
TxtCve_esc.DataField = "Cve_esc"
TxtTurno.DataField = "Turno"
TxtNom_esc.DataField = "Nom_esc"
TxtCve_Mpio.DataField = "Cve_mpio"
TxtMun.DataField = "Mun"
TxtCve_Loc.DataField = "Cve_Loc"
TxtLoc.DataField = "Loc"
TxtDom_esc.DataField = "Dom_esc"
TxtDirector.DataField = "Director"
TxtSector.DataField = "Sector"
TxtZonesc.DataField = "Zonesc"
TxtDSR.DataField = "Dsr"
TxtCiclo.DataField = "Ciclo"
TxtNodoc.DataField = "nodoc"
With DataGrid1.Columns(0) '
.Caption = "Insc._H_1º"
.Width = Me.TextWidth(String(10, "S"))
'.NumberFormat = "##,##0.0"
'.Visible = False
DataGrid1.Columns(0).Locked = True
DataGrid1.Columns(0).Alignment = vbCenter
End With
With DataGrid1.Columns(1) '
.Caption = "Exist._H_1º"
.Width = Me.TextWidth(String(10, "S"))
'.NumberFormat = "##,##0.0"
'.Visible = False
DataGrid1.Columns(1).Locked = True
DataGrid1.Columns(1).Alignment = vbCenter
End With
With DataGrid1.Columns(2) '
.Caption = "Aprob._H_1º"
.Width = Me.TextWidth(String(10, "S"))
'.NumberFormat = "##,##0.0"
'.Visible = False
DataGrid1.Columns(2).Locked = True
DataGrid1.Columns(2).Alignment = vbCenter
End With
End sub
Private Sub Op_Click(Index As Integer)
Dim CONDICION As String
Select Case Index
Case 0
Text1.Text = ""
CONDICION = "SELECT DISTINCT(Cve_esc) FROM Estadistica ORDER BY Cve_esc ASC"
CAMPO = "Cve_esc"
Text1.SetFocus
Case 1
Text1.Text = ""
CONDICION = "SELECT DISTINCT(Nom_esc) FROM Estadistica ORDER BY Nom_esc ASC"
CAMPO = "Nom_esc"
Text1.SetFocus
Case 2
Text1.Text = ""
End select
End sub
Espero no sea mucha molestia. Gracias

1 Respuesta

Respuesta
1
No es molestia, pero no veo en que forma le puedas colocar un control de barra de progreso, ya que cuando se realizan operaciones con los recordsets, recorrrerlos y calcular algo o mandarlos en forma manual a algún control sí se puede, pero cuando se enlaza a controles no se puede porque cuando ejecutas la sentencia de extracción, pierdes el foco de tu aplicación y lo mandas a la base de datos, y cuando regresa simplemente asignas el recordset de datos.
La única forma es que generaras un proceso asíncrono, que se ejecute la selección en segundo plano y tú colocar un timer que vaya indicando el progreso fingido.
Checa la página de http://www.planetsourcecode.com puede ser que ahí encuentres algo como lo que quieres hacer o validar lo del proceso asíncrono.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas