2017-06-29 84 views
0

我在Access中有一個表,用作進度跟蹤器/待辦事項列表,其中一個字段包含日期(短文本)和我當天做了什麼(長文本)。一個例子是這樣的按訂單輸入記錄的MS訪問訂單表

date | progress 
---------------- 
6/20 | did item1 
    | tomorrow do item2 and item3 
6/21 | long text I continue in the next line for visibilty 
    | continued 
    | to do tomorrow 
6/22 | item6 completed 

等我手動輸入這些東西。在過去的三週左右,我一直在更新這張表,它每次都以相同的順序打開 - 我創建記錄的順序。最近,該表以完全隨機的順序打開,並繼續以新順序打開。

我現在知道創建一個自動編號字段並按順序排列它,或者使字段的默認值= Now()成爲可能。我對很多領域做了很多工作,以創建一個新的ID字段,並按照我創建的順序手動爲每個記錄編號。

是否有可能強制表按照創建記錄的順序或至少以前的配置(剛剛按創建時間排序)對記錄進行排序?

另外,有沒有更好的方法來做到這一點...?我想爲其他將來與此合作的人創造一個記錄。另外,我對SQL很陌生,Access SQl有奇怪的/獨特的做事方式,所以對於我知道以後可能需要的一些查詢,我會保留一個包含查詢名稱和一些文檔的表格,說明它究竟做了什麼和一些關於語法的註釋(SQL編輯器不允許-- comments)。還有更好的方法來做到這一點嗎?

感謝您的幫助!包含日期(短文本)

回答

1

一個場

日期不應該被存儲爲任何比日期值別的。沒有例外。

因此,將字段的數據類型更改爲日期,對此進行排序,並且您的問題消失了。

要訂購空日期最後:

Order By Abs([DateField] Is Null), [DateField] 
+0

好吧,你謝謝你的建議!我把'date'改成了實際的日期/時間格式,並且將來會確保保留那種格式的日期。我問題的原因之一是令人討厭的是,由於我設置此表的方式(差),有很多記錄中'date'爲空(q中的表格)。當我將OrderBy屬性設置爲'date'時,無論數據類型是Date/Time還是Short Text,它都會將所有'date'爲空的記錄放在頂部,然後實際上底部有一個日期的記錄,按日期排序。 –

+0

這是正確的。您可以反轉Null值的排序 - 請參閱編輯的答案。 – Gustav

+0

感謝您的回覆。具體來說,我的問題是,'date'爲空的記錄隨機散佈在表中,所以我需要弄清楚如何獲取創建記錄的順序,因爲這實際上是唯一可以正確排序記錄的數據。在原始問題中,我有一個模擬表格,顯示過期/空單元格的隨機結構。 –