2010-03-31 34 views
2

在工作中,我們有一份歷史上在龐大的Excel工作簿中維護的名冊。由於員工的變化等原因,這會變得有點脆弱,所以我試圖將其作爲Access數據庫進行強有力的重新實現。查詢訪問以從記錄中構建列

我有一張人物表(字段包括人名和其他一些屬性)和一張度假表 - 每個度假都有一個person_ID,一個開始日期和一個結束日期。

我會非常希望能夠從這個產生是名冊電網就像我們曾在Excel工作簿:

Date Person A Person B Person C 
01 Jan -   -   - 
02 Jan -   -   - 
03 Jan VAC   -   - 
04 Jan VAC   VAC   - 
05 Jan VAC   VAC   - 
06 Jan -   VAC   - 
07 Jan -   -   - 
08 Jan -   -   - 
09 Jan -   -   - 

(在這個例子中Vactions表有兩個記錄 - 一個用於人A和人B的人)。

用Excel表達這種事情嗎?或者我將不得不編寫一些代碼?

謝謝!

+0

如何在*地獄*沒有這個問題上的超級用戶屬於?我真希望那些投票結束問題的人被要求捍衛他們的投票,因爲除非你相信沒有任何訪問問題屬於SO,否則這個投票是毫無意義的。 – 2010-04-03 23:03:02

回答

1

我會建議

  • 建立自己的日期表(用一排,你很可能會利用每一個日期表,說01/01/2000 31/12/2020)

  • 在此表的幫助下,構建一個視圖,列出每個人的每個日期,並顯示該人是否在休假或休假(假期和日期表之間的連接以及假期和人)

  • 現在比較棘手的一點。你現在需要建立一個交叉表查詢....但訪問可以很有趣(沒有使用一段時間的訪問,所以這可能是錯誤的)。

  • 然而,我會建議在建設上面,然後在第2步的視圖中使用Excel的能力來建立數據透視表爲您服務。將您的Excel電子表格連接到Access數據庫,並且每當用戶需要刷新數據時,他們都會刷新它!

HTH

+0

我可以看到這將如何工作,雖然建立一個日期列表似乎有點hacky表。 – 2010-03-31 07:31:12

+0

**: - o ** Hacky? *哈克!?* :-)相信與否使用日期表是處理諸如此類問題的非常公認的方式。找到沒有休假日期的唯一真正替代方法是使用效率較低的循環方法,這也違背了SQL的集合特性。 – CResults 2010-03-31 07:41:30

+0

我猜想我要去的地方會感覺有點像把一個方形釘放在一個圓洞裏。這個問題有相同的想法很多變化:http://stackoverflow.com/questions/510012/get-a-list-of-dates-between-two-dates – 2010-03-31 07:47:49

2

您可以通過訪問數據透視表來做到這一點,但顯示這樣的數據是「Excel訪問/數據庫」綜合症的典型症狀。

輕度切線

我總是告訴件事,在數據庫中只有3號0,1和n,其中n爲2和無窮大之間的任意數字。當你有少量員工時,像這樣顯示數據很好,但當你有50或300名員工時會發生什麼?我會以不同的方式顯示數據,可能是交互式表單或其他類型的動態顯示。如果它必須是紙質的,那麼也許每個人都會分解一些報告?

/輕度的切線