Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

como evitar cargar un recordset 2 veces

Estas en el tema de como evitar cargar un recordset 2 veces en el foro de Visual Basic clásico en Foros del Web. Hola foro. Tengo un formulario donde en el evento Load hago: Dim rs As New ADODB.Recordset rs.Open "mi consulta sql", Acon, adOpenStatic, adLockReadOnly Set ob.DataSource ...
  #1 (permalink)  
Antiguo 25/05/2010, 10:19
 
Fecha de Ingreso: mayo-2010
Mensajes: 22
Antigüedad: 14 años, 7 meses
Puntos: 0
como evitar cargar un recordset 2 veces

Hola foro. Tengo un formulario donde en el evento Load hago:

Dim rs As New ADODB.Recordset

rs.Open "mi consulta sql", Acon, adOpenStatic, adLockReadOnly

Set ob.DataSource = rs

ob.DataField = DF
ob.BoundColumn = DF

Set ob.RowSource = rs

ob.ListField = LF
ob.Refresh
Set rs = Nothing

Para llenar un Datacombo de Localidades (el cual guarda Localidad, CodLocalidad y CodPostal).

Ahora bien, tengo tambien un textbox donde quisiera que al ingresar un codigo postal pueda filtrar sobre el recordset (y de esta manera no abrirlo nuevamente).

Lo que quisiera hacer (y no puedo) es antes de hacer el nothing poder grabar los datos en otro recordset o en una grilla o similar para luego poder hacer un seek o find sobre eso y no volver a abrir otro recordset?

Resumo:

Quisiera abrir el recordset, cargar el datacombo pero que desde un textbox pueda ingresar un codigo postal y poder buscar dentro del recordset que utilize para cargar el datacombo.

Bueno, espero que me entiendan!

Muchas Gracias.
  #2 (permalink)  
Antiguo 25/05/2010, 10:54
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 15 años, 2 meses
Puntos: 47
Respuesta: como evitar cargar un recordset 2 veces

Hola!!
Por que no declaras el recordset como publico? asi, lo puedes manejar sin problemas... para cerrarlo, pon en el unload del form:
Código vb:
Ver original
  1. if rs.state=1 then
  2.    rs.close
  3.    Set rs = Nothing
  4. end if
  #3 (permalink)  
Antiguo 25/05/2010, 16:40
 
Fecha de Ingreso: mayo-2010
Mensajes: 22
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: como evitar cargar un recordset 2 veces

Gracias por la respuesta, pero el problema es que luego de hacer:

...
ob.ListField = LF
ob.Refresh

No podía hacer ni .movefirst, .find, etc (recordar que ob es un datacombo)

Lo solucione de esta manera:

...
ob.ListField = LF
ob.Refresh
Set rsLocalidad = rs.Clone
Set rs = nothing
...

De esta manera una vez que cargo el datacombo, el contenido del recordset lo "clono" al rsLocalidades el cual es solo para efectuar búsquedas.

Espero haber hecho lo correcto.

Etiquetas: recordset
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:45.