【发布时间】:2014-02-12 23:31:25
【问题描述】:
我有一个带有数据表视图的子表单。在父表单上,我试图根据子数据表中选择的内容来编辑记录。表单不使用主/子字段链接。
我能够使用 SelTop 和 SelHeight 获取所选的顶行和所选行的数量,如下所示。
Dim rs As New ADODB.Recordset
Set rs = Me.Child_Form.Form.RecordsetClone
If SelHeight > 0 Then
rs.MoveFirst
rs.Move SelectionTop - 1
For i = 1 To SelectionHeight
If Not rs.EOF Then
Debug.Print rs("ID")
rs.MoveNext
End If
Next i
End If
如果我完全过滤或排序了表单,我不能做的是获取子表单上选择的 10 条记录。 Filters 和 Sorts 处于表单级别,不能应用于基础记录集。
我尝试使用类似这样的查询创建一个新记录集
sql = "Select * from [" & Me.RecordSource & "] where " & Replace(Me.Filter, """", "'") & " order by " & Me.OrderBy
但这里有多个问题。 1) ADO 不支持表单过滤器有时会生成的 IN 子句,以及 2) 订单顺序并不总是相同且可预测的。
我怎样才能得到一个排序、过滤的记录集并只找到用户在数据表视图中选择的那些记录?
我正在使用 ADP 文件连接到 Sql Server。
【问题讨论】: