2013-03-05 109 views
1

排序這一個是Visual Basic報告的屏幕截圖。正如你可以看到它開始於8月然後12月然後2月,但它已經在它的訪問這是它分組。 enter image description herems訪問visual basic 2010報告不按

這是一個查詢在訪問即時通訊不知道如果我做了正確的事情,但我已經命令的最早。

enter image description here

這裏是SQL代碼從MS訪問

SELECT MonthName(Month([Date_sold])) & ' ' & Year([Date_sold]) AS Month_Sold, Sum(tblSell.Total_Price) AS Total_Earnings, Sum(tblSell.Quantity_Bought) AS Total_Medicine_Sold, tblSell.Generic_name, tblSell.Brand_Name 
FROM tblSell 
GROUP BY MonthName(Month([Date_sold])) & ' ' & Year([Date_sold]), tblSell.Generic_name, tblSell.Brand_Name, Year([Date_sold]), Month([Date_sold]) 
ORDER BY Year([Date_sold]), Month([Date_sold]); 
總之

是通過我的報告在Visual Basic應顯示二月先喜歡上的MS Access的一個犯規秩序但它顯示了不同的八月。

回答

4

我相信,排序按照屬性表中「數據」選項卡中的「報表順序」屬性進行。要麼將其設置在那裏,要麼確保它是空的。然後設置報告屬性是這樣的:

Me.OrderBy = "[SomeField], [AnotherField]" 
Me.OrderByOn = True 

編輯: 所有微軟的產品使開發人員可以訪問使用一種叫做VBA語言(Visual Basic應用程序)開發環境。您可以使用該語言編寫程序和宏來增強產品。看看這裏,儘管它有點老了,但它仍然是相關的:http://visualbasic.about.com/od/learnvba/l/aa030803b.htm

對於您,您需要將我建議的代碼添加到報告的OnLoad事件中。要做到這一點:

  1. 打開訪問
  2. 打開你的報告,在設計視圖
  3. 在左邊,你會看到一個標籤稱爲屬性表
  4. 的OnLoad事件選擇事件選項卡
  5. ,點擊 「...」(省略號)按鈕
  6. 這將調出VBA代碼
  7. 補充一點:
Private Sub Report_Load() 
    Me.OrderBy = "[SomeField], [AnotherField]" 
    Me.OrderByOn = True 
End Sub 

試一下,看看它是否工作。

+0

uhm sry im noob on vb我應該在哪裏設置代碼?在.rdlc上還是在放置reportviewer的表單上? – 2013-03-05 14:18:25

+0

自從我與此合作已經有一段時間了,但我相信最好的地方是報告本身。可能在報告創建時。 – jason 2013-03-05 14:48:11

+0

大概'在負載上' – Scotch 2013-03-05 19:01:45

1

爲什麼不排序(我在工作中執行某些裝運訂單報告時存在同樣的問題)是因爲代碼沒有讀取日期。它會以適當的方式列出它們,因爲它是一個文本字段而不是短日期。我只是去參數,並能夠修復它。