Barra de progreso con recordset

Hace poco me enviaste un código para 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
Ojala y no sea mucha molestia.
Respuesta
1
He visto tu código y por lo que veo directamente lo vinculas el resultado a la grilla por lo que no hay un recorrido explicito por el recordser, lo que podrías hacer seria simular que lo estas recorriendo tomando en cuenta que cada instrucción que tengas cuando realizas la búsqueda es un avance proporcional en tu barra de desplazamiento.
Por ejemplo en este parte del código podrías implementarla.
Private Sub CmdBuscar_Click()
If Text1.Text = "" Then
MsgBox "ESPECIFIQUE UN CRITERIO", vbCritical, "ERROR"
Exit Sub
End If
progressbar1.max = numero_de_filas_de_codigo
progressbar1.min=0
progressbar1.value =1
'Con esto inicializas el progresbar
'Ahora despues de cada instruccion tendrias que ponerle lo siguiente
If Op(0).Value = True Then
Set RSCONSULTA = FILTRAR("SELECT * FROM Estadistica WHERE " & CAMPO & "='" & Text1.Text & "'")
progressbar1.value = 1
Set DataGrid1.DataSource = RSCONSULTA
progressbar1.value = 2
' Exit Sub
End If
...
Esto lo tendrías que hacer repetitivo, no te lo aconsejaría por como lo estas haciendo, piensa que cada instrucción adicional que coloques hace de que tu programa se haga más lento.
lo que te podria aconsejar seria que hagas lo siguiente:
'Cuando comienza tu busqueda el mouse se colocaria en forma de espera o reloj
Me.Mousepointer = vbHourglass
If Op(0).Value = True Then
Set RSCONSULTA = FILTRAR("SELECT * FROM Estadistica WHERE " & CAMPO & "='" & Text1.Text & "'")
Set DataGrid1.DataSource = RSCONSULTA
' Exit Sub
End If
...
Me.MousePointer = vbDefault
''El mouse se coloca como puntero

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas