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

Move en recordset

Estas en el tema de Move en recordset en el foro de Visual Basic clásico en Foros del Web. En un recordset no quiero moverme ni al primero, ni al ultimo, ni al siguiente, ni al próximo, sino a un record específico. Como puedo ...
  #1 (permalink)  
Antiguo 23/06/2005, 10:08
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Move en recordset

En un recordset no quiero moverme ni al primero, ni al ultimo, ni al siguiente, ni al próximo, sino a un record específico. Como puedo hacerlo?, porque en las propiedades del recordset aparece move, movefirst, movelast, movenext y moveprevious.

Como me muevo a un record específico?
  #2 (permalink)  
Antiguo 23/06/2005, 10:42
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Exclamación Hay que utilizar la ayuda!

Sacado de la ayuda de Visual Basic


Cita:
Método Move (ADO)

Mueve la posición del registro actual de un objeto Recordset.

Sintaxis

recordset.Move NumRecords, Start

Parámetros

NumRecords Una expresión Long con signo que especifica el número de registros a partir de la posición del registro actual.

Start Opcional. Un String o Variant cuyo resultado sea un marcador. También puede utilizar uno de los siguientes valores de BookmarkEnum:
__________________
Leer es Saber, REEL.
Mi Blog
  #3 (permalink)  
Antiguo 23/06/2005, 12:31
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Ese es el gran problema que tengo, amigo....

... que los discos de instalación que tengo de MSDN están jodidos, y estoy programando sin la ayuda, por eso a veces hago consultas que no debiera.

Sabes por donde podría descargarme el MSDN para VB6 en español?

Me ayudaría bastante

Gracias
  #4 (permalink)  
Antiguo 23/06/2005, 12:36
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
:( lastimosamente no sé si se pueden bajar.

Pero acá te dejo este link para que consultes (es el MSDN Online)

http://msdn.microsoft.com/library/

Ahí encontrarás el mismo (bueno realmente en algunos cosos, con mejoras) contenido de los discos del MSDN.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog

Última edición por reel; 24/06/2005 a las 08:40 Razón: El link estaba malo ;-)
  #5 (permalink)  
Antiguo 23/06/2005, 12:41
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Sonrisa

Mil gracias
  #6 (permalink)  
Antiguo 24/06/2005, 00:55
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Me da error esa página reel... a ti también?
  #7 (permalink)  
Antiguo 24/06/2005, 01:01
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Sonrisa Ya está

http://www.microsoft.com/spanish/msdn/spain/default.asp
  #8 (permalink)  
Antiguo 24/06/2005, 01:04
Avatar de izar  
Fecha de Ingreso: enero-2004
Mensajes: 519
Antigüedad: 20 años, 3 meses
Puntos: 1
asi mejor http://msdn.microsoft.com/library/
  #9 (permalink)  
Antiguo 24/06/2005, 01:06
Avatar de izar  
Fecha de Ingreso: enero-2004
Mensajes: 519
Antigüedad: 20 años, 3 meses
Puntos: 1
ups!!! tarde un poco en grabar el post
  #10 (permalink)  
Antiguo 24/06/2005, 05:50
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Sigo trabado con esto. A ver si me podéis ayudar.

Lo que quiero lograr es lo siguiente:
- aplicación VB6/Access97
- pantalla que filtra la información (según lo que seleccione el usuario) hacia una ADO con un recordsource where Campo1='Variable1'
- existe un commandbutton modificar que está activo.
(supongamos que el usuario ha encontrado lo que buscaba y quiere modificarlo)
- al presionar sobre cmdmodificar, pretendo que el recordset recupere su estado original ("select * from Tabla1", sin where), pero que el cursor se mantenga con el registro activo para que el usuario lo pueda modificar.
- hay un CampoID que me parece debería servir para ello. Supongamos que existe una variable VID de tipo integer, de modo que yo puedo establecer (antes de desplazar)
VID=recordset!CampoID
para luego de restaurar el recordset original, moverme hacia ese registro, donde CampoID=VID, pero no me sale.
también he intentado emplear la propiedad AbsolutePosition del recordset, llevándola a varible, pero tampoco me sale, pues me toma la AbsolutePosition del recordset filtrado, y no la del original.

He buscado en MSDN online (no tengo otro), pero no encuentro lo que me pueda servir.

La respuesta que me da el amigo Reel, sobre el método move del ADO, donde:
recordset.Move NumRecords, Start
no sé como emplearlo, pues - en tiempo de ejecución - no sé como controlar el numero de records que debe desplazarse el recordset... uff...!!

Podrían ayudarme, porfa?

Bueno, aquí escribo el código completo del commandbutton, por si sirve de algo (estaba intentando sacarlo por el AbsolutePosition, como ya comenté)

y de uno de los DataCombos mediante los que hace el usuario su selección

Private Sub DC_Ope_MouseUp(Index As Integer, Button As Integer, shift As Integer, X As Single, Y As Single)
If VSelect = True Then 'Estamos en un filtro
VOpe = fAvi.DC_Ope(19).Text
'Bloqueando el resto de los commandbuttons
'que pueden ser filtrados
'(para que no me hagan filtros múltiples)
With fAvi 'Todos menos Operarios
'Estableciendo fondo y letra a DC que se filtran
.DC_Loca(17).BackColor = &HFF00&
.DC_Tra(18).BackColor = &HFF00&
.DC_Inc(20).BackColor = &H80000005
.DC_Loca(17).ForeColor = &HFF0000
.DC_Tra(18).ForeColor = &HFF0000
.DC_Inc(20).ForeColor = &HFF0000
'Deshabilitando DC que se filtran
.DC_Loca(17).Locked = True
.DC_Tra(18).Locked = True
.DC_Inc(20).Locked = True
'Seteando las variables de búsquedas a EMPTY
VLoca = ""
VTra = ""
VInc = ""
End With
datPrimaryRS.RecordSource = "Select * from AVISOS where Operarios='" & VOpe & "'"
datPrimaryRS.Refresh
End If
End Sub


Private Sub cEdit_Click()
'Si estoy en un filtro
If VSelect = True Then
'Pasos incluídos por el filtro
'Determinando la posición en el recordset
VAbsolutePosition = datPrimaryRS.Recordset.AbsolutePosition
'Estableciendo estado inicial de los commandbuttons
cNew.Enabled = True
cEdit.Enabled = True
cSelect.Enabled = True
cEnd.Enabled = True
cRefresh.Enabled = True
With fAvi
'Colores de los textbox iniciales
.tID_Aviso(2).BackColor = &HFFFFFF
.tID_Aviso(3).BackColor = &HFFFFFF
.tFilial(4).BackColor = &HFFFFFF
.tID_Aviso(3).Text = "MOVIMIENTO"
'Estableciendo fondo y letra a DC que se filtran
.DC_Loca(17).BackColor = &HFF00&
.DC_Tra(18).BackColor = &HFF00&
.DC_Inc(20).BackColor = &H80000005
.DC_Ope(19).BackColor = &H80000005
.DC_Loca(17).ForeColor = &HFF0000
.DC_Tra(18).ForeColor = &HFF0000
.DC_Inc(20).ForeColor = &HFF0000
.DC_Ope(19).ForeColor = &HFF&
'Deshabilitando DC que se filtran
.DC_Loca(17).Locked = True
.DC_Tra(18).Locked = True
.DC_Inc(20).Locked = True
.DC_Ope(19).Locked = True
End With
'Seteando las variables de búsquedas a EMPTY
VOpe = ""
VLoca = ""
VTra = ""
VInc = ""
'Vacío el filtro
datPrimaryRS.RecordSource = ""
'Establezco el nuevo recordset
datPrimaryRS.RecordSource = "Select * from AVISOS Order by ID_AVISO"
'Refresco la pantalla
datPrimaryRS.Refresh
' datPrimaryRS.Recordset.AbsolutePosition = VAbsolutePosition

'*****Procedimiento normal (no filtrado)*****
VEM = "M"
On Error GoTo AddErr
Entra_En_Modificación
fAvi.tObs(6).SetFocus
Else
'Procedimiento normal (no filtrado)
VEM = "M"
On Error GoTo AddErr
Entra_En_Modificación
fAvi.tObs(6).SetFocus
End If
'Seteando VSelect a False
VSelect = False
Exit Sub
AddErr:
MsgBox Err.Description
End Sub
  #11 (permalink)  
Antiguo 24/06/2005, 07:27
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Desacuerdo Bueno, pues nada...

...dado que no se me ocurre nada mejor, intentaré emplear el método find a campoID_Aviso=variableIDAviso.
  #12 (permalink)  
Antiguo 24/06/2005, 19:21
 
Fecha de Ingreso: abril-2005
Mensajes: 44
Antigüedad: 19 años
Puntos: 0
Otra solucion

hola.. mira yo tenia unas dudas parecidas.. lo que hice fue crear un formulario con el wizard (asistente) de visual basic... le das nuevo formulario y seleciconas formulario de datos.. alli sigues todas las sintrucciones.. al momento de seleccionar la base de datos si la seleccionas de acces tendra que ser acce 97 para VB 6 puedes bajar las updates de VB 6 son 2 parches el SP5 y SP6 con ello ya puedes trabajar con access 2000 tambien (me costo mucho tiempo solucionar eso je je je) bueno el chiste es que tienes que hacer un formulario con wl wizard selecciona cualquier tabla en la forma quq uieras y al terminar el asistente te muestra el codigo.. checa los codigos, alli aparece el codigo del boto modificar, actualizar, etc... espero que te sirva de algo.. :p yo soy algo nuevo en esto de DB with Access
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 00:35.