Visual Basic - MoveNext

Life is soft - evento anual de software empresarial
   
Vista:

MoveNext

Publicado por FERNANDO (2 intervenciones) el 13/12/2010 16:31:10
Buenos dias

Tengo este codigo que funciona bien, basicamente es para una busqueda en una agenda.
Trabajo con Access y vb6 sin adodc.
en el text1 voy escribiendo los que quiero buscar y conforme lo voy haciendo, me muestra en la grilla las coincidencias, al darle click a la grilla en el registro que quiero, me muestra todos los campos de ese registro en unos textbox.Ahora lo que necesito es agregar unos botones para avanzar y retroceder a partir de la ultima seleccion.


Dim Conex As New Connection
Dim AGRecordset As New Recordset
___________________________________________________-

Private Sub Form_Load()
DataGrid1.Visible = False
Frame1.Visible = False
Image2.Visible = False
Label10.Visible = False

Conex.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Fernando\Documents\Database3.mdb;Persist Security Info=False"
AGRecordset.Open "SELECT * FROM AGENDA ORDER BY NOMBRE", Conex, adOpenDynamic, adLockOptimistic
Conex.CursorLocation = adUseClient
End Sub
_______________________________________________________

DataGrid1.Visible = True

Text1.Text = UCase(Text1.Text)
With AGRecordset
If .State Then
.Close
End If
.Open "SELECT * FROM AGENDA Where NOMBRE like '" & Text1.Text & "%' ORDER BY NOMBRE", Conex, adOpenDynamic, adLockOptimistic

DataGrid1.DefColWidth = 7800

Set DataGrid1.DataSource = AGRecordset

End With
Text1.SelStart = Len(Text1.Text)

End Sub
______________________________________________________________-

Private Sub DataGrid1_Click()
Frame1.Visible = True
Image2.Visible = True
Label10.Visible = True

Text2.Text = AGRecordset!NOMBRE
Text3.Text = AGRecordset!TELEFONO1
Text4.Text = AGRecordset!TELEFONO2
Text5.Text = AGRecordset!TELEFONO3
Text6.Text = AGRecordset!CONTACTO1
Text7.Text = AGRecordset!CONTACTO2
Text8.Text = AGRecordset!CUENTA
Text9.Text = AGRecordset!BANCO
Text10.Text = AGRecordset!NOTA

Set AGRecordset = Nothing
Conex.Close
Set Conex = Nothing
Conex.CursorLocation = adUseClient
Conex.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Fernando\Documents\Database3.mdb;Persist Security Info=False"
AGRecordset.Open "SELECT * FROM AGENDA Where NOMBRE like '" & Text1.Text & "%' ORDER BY NOMBRE", Conex, adOpenDynamic, adLockOptimistic
DataGrid1.Visible = True
Text1.Visible = False
Label1.Visible = False
End Sub

Alguna Idea???

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:MoveNext

Publicado por @RojasMarcelo (225 intervenciones) el 13/12/2010 20:58:41
Yo te recomendaria lo siguiente, claro, tomalo con una pisca de sal:

1. Abrir la Base de datos una sola vez (form load)
2. En tu recordset carga la tabla que necesitas filtrar, ejemplo:
AGRecordset.Open "SELECT * FROM AGENDA;" '<- notese que cargo toda la tabla

3. Filtra tu recordset en vez de hacer llamadas SQL, me refiero a lo sgte:
AGRecordset.Filter = "NOMBRE Like %" & Text1.Text & "%"

4. Cuando necesitas ir al sgte record llamas AGRecordset.Movenext y ya.

5. El codigo expuesto anteriormente no ha sido probado, corregidle segun corresponda.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar