Примерно вот так:
Это должно быть в модуле главной формы.
Подформа находится в контроле с именем sf
Логическое поле в подформе называется MyField
Dim lgSelTop As Long 'выделено в подформе sf
Dim lgSelHeight As Long 'выделено в подформе sf
Private Sub sf_Exit(Cancel As Integer)
lgSelTop = Me.sf.Form.SelTop
lgSelHeight = Me..Form.SelHeight
End Sub
Private Sub bt_Click()
Dim SQL As String
Dim strClassName As String
Dim strValueList As String
Dim n As Long
Dim retval As Long
On Error GoTo errH
If lgSelHeight = 0 Then Exit Sub 'ничего не выделено
Dim rs As ADODB.Recordset
Set rs = Me.sf.Form.Recordset
DoCmd.Echo True
rs.MoveFirst
rs.Move lgSelTop - 1
DoCmd.Echo True
For n = 1 To lgSelHeight
rs("MyField") = True
rs.Update
DoEvents
rs.MoveNext
Next n
Set rs = Nothing
lgSelHeight = 0
lgSelTop = 0
Exit Sub
errH:
DoCmd.Echo True
MsgBox Err.Number & " " & Err.Description, vbCritical, "bt_Click"
End Sub |