2011-09-25 47 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 - 謝謝!我之前瀏覽了那篇文章,並錯過了關於這種行爲的說明。你可以把這個作爲答案,我可以接受它嗎? –

回答