0

MS Accessでレポートを作成していて、VBスクリプトを使用して一部のデータをフィルタリングしたいのですが、これまで使用したことがありません。すべての注文をオンラインで行った顧客に返したいテーブル(クエリ)があります。私は別の組み合わせを試しました。IDが同じかどうかを設定して、すべての注文をオンラインで行った顧客のみの価格を追加しました。私は惨めに失敗しています。どんな助けでも大歓迎です。JSFiddleでテーブルのレプリカを作成しました。たとえば、レポートが作成されると、次の顧客のみがレポートに含まれます。JohnSmith、IreneFrançois、William Gedeon、およびJoshua Gonzalezは、3月にすべての注文をオンラインで行った顧客です。データをよりよく理解するには、以下のリンクを参照してください。どうもありがとうございます。

<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

4

1 に答える 1

0

これを行うために VB スクリプトは必要ありません (ただし、必要に応じて使用できます - 以下を参照してください)。

注: テーブル名は「Orders」、フィールドは「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
于 2013-03-05T15:57:56.823 に答える