2013-03-04 137 views
0

我在MS Access中做一個報告,我想用VB腳本過濾一些我的數據,但我從來沒有用過它。我有一個表格(查詢),我想退回已經在線完成所有訂單的客戶。我嘗試了不同的組合,我設置了ID是否相同,只爲在線訂購所有訂單的客戶添加價格。我失敗了。任何幫助將不勝感激。我已經在JSFiddle中創建了表的副本。例如,報告完成後,報告將只有以下客戶:John Smith,IreneFrançois,William Gedeon和Joshua Gonzalez,因爲他們是3月份在線完成所有訂單的客戶。請參閱下面的鏈接以更好地瞭解數據。非常感謝你。微軟Access 2010 VB腳本和查詢

<table border="1"> 
    <tr> 
     <th width="120">Month/Year</th> 
     <th width="120">Customer ID</th> 
     <th width="120">Last Name</th> 
     <th width="120">First Name</th> 
     <th width="120">In/Out of State</th> 
     <th width="120">Customer Type</th> 
     <th width="120">Product Name</th> 
     <th width="120">Source of Order</th> 
     <th width="120">Price</th> 
     <th width="120">Monthly Total</th> 
    </tr> 
     <tr> 
     <td>March/2013</td> 
     <td>000357321</td> 
     <td>John</td> 
     <td>Smith</td> 
     <td>Resident</td> 
     <td>VIP</td> 
     <td>Natural Olive Oil</td> 
     <td>Online</td> 
     <td>$3</td> 
     <td>$7</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>000357321</td> 
     <td>John</td> 
     <td>Smith</td> 
     <td>Resident</td> 
     <td>VIP</td> 
     <td>Cream of Coconut</td> 
     <td>Online</td> 
     <td>$4</td> 
     <td>$7</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>000568354</td> 
     <td>Purkiss</td> 
     <td>Andre</td> 
     <td>Non-Resident</td> 
     <td>Regular</td> 
     <td>Pink Candy</td> 
     <td>In-Store</td> 
     <td>$7</td> 
     <td>$17</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>000568354</td> 
     <td>Purkiss</td> 
     <td>Andre</td> 
     <td>Non-Resident</td> 
     <td>Regular</td> 
     <td>Organic Pasta</td> 
     <td>Online</td> 
     <td>$4</td> 
     <td>$17</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>000568354</td> 
     <td>Purkiss</td> 
     <td>Andre</td> 
     <td>Non-Resident</td> 
     <td>Regular</td> 
     <td>Challah Bread</td> 
     <td>Phone Order</td> 
     <td>$6</td> 
     <td>$17</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>025999248</td> 
     <td>François</td> 
     <td>Irene</td> 
     <td>Resident</td> 
     <td>Regular</td> 
     <td>Bottle Opener</td> 
     <td>Online</td> 
     <td>$8</td> 
     <td>$21</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>025999248</td> 
     <td>François</td> 
     <td>Irene</td> 
     <td>Resident</td> 
     <td>Regular</td> 
     <td>Key Chain</td> 
     <td>Online</td> 
     <td>$4</td> 
     <td>$21</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>025999248</td> 
     <td>François</td> 
     <td>Irenee</td> 
     <td>Resident</td> 
     <td>Regular</td> 
     <td>Printing Paper</td> 
     <td>Online</td> 
     <td>$5</td> 
     <td>$21</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>025999248</td> 
     <td>François</td> 
     <td>Irene</td> 
     <td>Resident</td> 
     <td>Regular</td> 
     <td>Cho. Chip Cookies</td> 
     <td>Online</td> 
     <td>$4</td> 
     <td>$21</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>091357456</td> 
     <td>Abramovitch</td> 
     <td>Tayron</td> 
     <td>Resident</td> 
     <td>VIP</td> 
     <td>Banana</td> 
     <td>Phone Order</td> 
     <td>$3</td> 
     <td>$10</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>091357456</td> 
     <td>Abramovitch</td> 
     <td>Tayron</td> 
     <td>Resident</td> 
     <td>VIP</td> 
     <td>Fried Onions</td> 
     <td>Online</td> 
     <td>$7</td> 
     <td>$10</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>022864295</td> 
     <td>Hatchner</td> 
     <td>Emily</td> 
     <td>Non-Resident</td> 
     <td>VIP</td> 
     <td>Vodka Sauce</td> 
     <td>In-Store</td> 
     <td>$5</td> 
     <td>$34</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>022864295</td> 
     <td>Hatchner</td> 
     <td>Emily</td> 
     <td>Non-Resident</td> 
     <td>VIP</td> 
     <td>Old Cheese</td> 
     <td>Online</td> 
     <td>$8</td> 
     <td>$34</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>022864295</td> 
     <td>Hatchner</td> 
     <td>Emily</td> 
     <td>Non-Resident</td> 
     <td>VIP</td> 
     <td>Tomatoes</td> 
     <td>Phone Order</td> 
     <td>$4</td> 
     <td>$34</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>022864295</td> 
     <td>Hatchner</td> 
     <td>Emily</td> 
     <td>Non-Resident</td> 
     <td>VIP</td> 
     <td>Frying Pan</td> 
     <td>Online</td> 
     <td>$17</td> 
     <td>$34</td> 
    </tr> 
      <tr> 
     <td>March/2013</td> 
     <td>092456753</td> 
     <td>Gedeon</td> 
     <td>William</td> 
     <td>Non-Resident</td> 
     <td>Regular</td> 
     <td>USB Drive</td> 
     <td>Online</td> 
     <td>$2</td> 
     <td>$13</td> 
    </tr> 
      <tr> 
       <td>March/2013</td> 
     <td>092456753</td> 
     <td>Gedeon</td> 
     <td>Williame</td> 
     <td>Non-Resident</td> 
     <td>Regular</td> 
     <td>Cordless Keyboard</td> 
     <td>Online</td> 
     <td>$4</td> 
     <td>$13</td> 
    </tr> 
      <tr> 
       <td>March/2013</td> 
     <td>092456753</td> 
     <td>Gedeon</td> 
     <td>William</td> 
     <td>Non-Resident</td> 
     <td>Regular</td> 
     <td>MacBook Charger</td> 
     <td>Online</td> 
     <td>$7</td> 
     <td>$13</td> 
    </tr> 
     <tr> 
     <td>March/2013</td> 
     <td>000320680</td> 
     <td>Baltar</td> 
     <td>D'Anna</td> 
     <td>Non-Resident</td> 
     <td>Regular</td> 
     <td>Pineapple</td> 
     <td>In-Store</td> 
     <td>$3</td> 
     <td>$5</td> 
    </tr> 
    <tr> 
     <td>March/2013</td> 
     <td>000320680</td> 
     <td>Baltar</td> 
     <td>D'Anna</td> 
     <td>Non-Resident</td> 
     <td>Regular</td> 
     <td>Fresh Fish</td> 
     <td>Online</td> 
     <td>$2</td> 
     <td>$5</td> 
    </tr> 
      <tr> 
       <td>March/2013</td> 
     <td>04400250</td> 
     <td>Gonzalez</td> 
     <td>Joshua</td> 
     <td>Resident</td> 
     <td>VIP</td> 
     <td>NotePad</td> 
     <td>Online</td> 
     <td>$5</td> 
     <td>$19</td> 
    </tr> 
      <tr> 
       <td>March/2013</td> 
     <td>04400250</td> 
     <td>Gonzalez</td> 
     <td>Joshua</td> 
     <td>Resident</td> 
     <td>VIP</td> 
     <td>Plastic Binder</td> 
     <td>Online</td> 
     <td>$4</td> 
     <td>$19</td> 
    </tr> 
      <tr> 
       <td>March/2013</td> 
     <td>04400250</td> 
     <td>Gonzalez</td> 
     <td>Joshua</td> 
     <td>Resident</td> 
     <td>VIP</td> 
     <td>Box of Pencils</td> 
     <td>Online</td> 
     <td>$4</td> 
     <td>$19</td> 
    </tr> 
      <tr> 
       <td>March/2013</td> 
     <td>04400250</td> 
     <td>Gonzalez</td> 
     <td>Joshua</td> 
     <td>Resident</td> 
     <td>VIP</td> 
     <td>Au. Picture Frame</td> 
     <td>Online</td> 
     <td>$6</td> 
     <td>$19</td> 
    </tr> 


</table> 

的jsfiddle鏈接: 「http://jsfiddle.net/xqmDE/29/

最佳,

ZDM

回答

0

你並不需要的VB腳本來做到這一點(雖然如果你願意,你可以使用它 - 見下文)。

注意:我推定了'訂單'的表名和'CustomerID'和'SourceOfOrder'字段。

應用在報告中的「過濾器」屬性下面,並確保雙方的「過濾器在加載」和「允許過濾器」屬性設置爲「是」

CustomerID IN (
    (SELECT CustomerID FROM 
     (SELECT CustomerID, SourceOfOrder 
      FROM Orders 
      GROUP BY CustomerID, SourceOfOrder 
     ) orders_grouped 
     GROUP BY CustomerID 
     HAVING Count(SourceOfOrder) = 1) 
) AND SourceOfOrder = 'Online' 

如果你想要做到這一點在VBA把以下內容:

Private Sub Report_Load() 
    Reports!Orders.Filter = "CustomerID IN ((SELECT CustomerID FROM (SELECT CustomerID, SourceOfOrder FROM Orders GROUP BY CustomerID, SourceOfOrder) orders_grouped GROUP BY CustomerID HAVING Count(SourceOfOrder) = 1)) AND SourceOfOrder = 'Online'" 
    Reports!Orders.FilterOn = True 
End Sub