2013-03-04 4 views
0

MS Access에서 보고서를 작성하고 VB 스크립트를 사용하여 일부 데이터를 필터링하고 싶지만 이전에는 사용하지 않았습니다. 나는 그들의 모든 주문을 온라인으로 만든 고객을 돌려주고 싶다는 테이블 (질의)을 가지고있다. 저는 다른 조합을 시도했습니다. ID가 동일하면 모든 주문을 온라인으로 만든 유일한 고객에게 가격을 추가하도록 설정합니다. 나는 비참하게 실패하고있다. 어떤 도움이라도 대단히 감사하겠습니다. JSFiddle에서 테이블의 복제본을 만들었습니다. 예를 들어, 완료되면 보고서에는 3 월 한 달 동안 모든 주문을 온라인으로 작성한 고객이기 때문에 John Smith, Irene François, William Gedeon 및 Joshua Gonzalez와 같은 고객 만있을 것입니다. 데이터에 대해 더 잘 이해하려면 아래 링크를 참조하십시오. 고맙습니다.Microsoft 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 
관련 문제