【发布时间】:2011-11-24 14:19:01
【问题描述】:
我有一个启用了记录选择器的连续访问表单。这是 btnPrintReceipt 单击事件处理程序的代码。我希望它获取每个选定记录的 ReceiptID 并使用这些 ID 打开报告。问题是,当您单击命令按钮时,它会取消选择所有记录(我看到它发生了)并且只保留最上面的记录。
Private Sub btnPrintReceipt_Click()
'Build filter string containing all selected receipt ids
Dim FilterString As String
'Move to first record
Dim rsReceipts As Recordset
Set rsReceipts = Me.RecordsetClone
rsReceipts.Move Me.SelTop - 1
'Cycle through and record
Dim i As Integer
For i = 0 To Me.SelHeight
FilterString = FilterString & "([ReceiptNumber]=" & rsReceipts![ReceiptNumber] & ") OR "
rsReceipts.MoveNext
Next
'Remove trailing or
Dim NewStringLenth As Integer
NewStringLenth = Len(FilterString) - 4
If NewStringLenth > 0 Then
FilterString = Left(FilterString, NewStringLenth)
Else
FilterString = ""
End If
'Open the report
DoCmd.OpenReport "rptReceipt", acViewPreview, "", FilterString
End Sub
【问题讨论】:
-
@Remou - 谢谢!我之前浏览过那篇文章,错过了关于这种行为的说明。你能把这个作为答案让我接受吗?
标签: ms-access vba ms-access-2003 continuous-forms