Aquí está el código para hacerlo, pero hay una trampa.
Private Sub Command1_Click()
Dim i As Long
Dim RS As Recordset
Dim F As Form
Set F = Me.sf.Form
Set RS = F.RecordsetClone
If F.SelHeight = 0 Then Exit Sub
' Move to the first selected record.
RS.Move F.SelTop - 1
For i = 1 To F.SelHeight
MsgBox RS![myfield]
RS.MoveNext
Next i
End Sub
Aquí está la trampa: Si se añade el código a un botón, tan pronto como el usuario hace clic en ese botón, la selección se pierde en la red (SelHeight será cero). Por lo tanto, debe capturar esa información y guardarla en una variable de nivel de módulo con un temporizador u otros eventos en el formulario.
Aquí hay un artículo que describe cómo solucionar el problema en detalle.
http://www.mvps.org/access/forms/frm0033.htm
Catch 2: Esto sólo funciona con selecciones contiguas. No pueden seleccionar múltiples filas no secuenciales en la grilla.
Actualización:
Puede haber un mejor evento para atrapar a esto, pero aquí es una aplicación de trabajo mediante la propiedad form.timerinterval que he probado (al menos en 2k3 acceso, pero 2k7 debería funcionar bien)
Este código se encuentra en la SUBFORMACIÓN, utilice la propiedad para obtener el valor de autocobertura en el formulario maestro.
Public m_save_selheight As Integer
Public Property Get save_selheight() As Integer
save_selheight = m_save_selheight
End Property
Private Sub Form_Open(Cancel As Integer)
Me.TimerInterval = 500
End Sub
Private Sub Form_Timer()
m_save_selheight = Me.selheight
End Sub
increíble ... es por eso que seguí recibiendo selheight a las 0 ... Muchas gracias lo intentaré de inmediato y acepto tu respuesta si funcionó! – karlipoppins
hmm no puedo hacer que funcione ... Con Access 2007 , selheight se queda en 0 ... – karlipoppins
El truco está en agarrar el valor antes de que pierda el foco. ¿En qué evento está agarrando el valor del cierre? ¿Lo intentó en un temporizador en el subformulario? Pruebe el valor en el inmediato ventana (ctrl-g) y vea si el problema es la restauración de la configuración después de perder el foco. – JohnFx