2011-09-25 70 views
1

我有一个连续的访问表单并且启用了记录选择器。以下是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 
+0

请参阅http://support.microsoft.com/kb/208502 – Fionnuala

+0

@Remou - 谢谢!我之前浏览了那篇文章,并错过了关于这种行为的说明。你可以把这个作为答案,我可以接受它吗? –

回答