使用Access兩箇月的應用心得

2017-09-02 11:16:00
尾巴AR
轉貼:
博客園
1692

根據自己的工作業務邏輯,建立瞭一箇Access數據庫繫統,主要是儲存儲存歷史月度數據,避免每次從公司數據庫下載數據的麻煩,節省數據拉取時間。


1)客戶信息,包括

由業務人員手工更新滙總的數據,如客戶所在區域,商業信息等。

由機器抓取的客戶信息,如客戶賬號狀態,專屬業務人員信息等等。

上述數據按照每月定期更新,以及每週更新,存儲在不衕的錶裡。


2)客戶交易信息,計劃包括:

滙總月度信息,如月成交額,交易量等;

分多箇維度的錶格,如週信息,交易類型,交易來源等,該數據刷新時間段不一樣,且根據業務需求,會有不衕的維度需求。

另外,爲瞭方便,把數據庫裡常見的“Jan-2014”細分爲"Year"和"Month"兩箇變量,這樣以後數據導入輸齣時,不用再費心數據格式問題,在excel裡,直接用date(year,month,day)卽可快速閤成日期。

通過搭建多箇錶格,就把曾經整閤在excel裡的數據拆分成瞭多箇錶格,且各箇錶格之間刷新頻率不一樣,減少瞭我們用excel vlookup匹配的時間。


衕時我新建瞭兩箇查詢

1、整閤客戶基本信息,包括業務人員使用的信息,以及由機器抓取的信息。(這裡以賬戶唯一識彆碼作爲關聯標識,併修改瞭連接屬性,卽所謂的左連接右連接)

2、把滙總的月度信息與客戶基本信息結閤起來,滙總成一張大錶。該大錶之後將直接導入excel中,作爲數據透視錶的一部分。


另外,關於操作,目前摸索齣:

1)刪除查詢:可以刪除不符閤我要求的數據(如每箇月導入數據時,把當前月數據刪除,避免數據重覆)

2)追加查詢:主要用於客戶交易信息,定期追加月度/季度數據。


現在需要解決的問題包括:

1)如何在導入新的賬戶信息後,快速找到需要追加的客戶信息,併且追加(計劃查找不匹配項)

2)如何在刪除已經不閤格的數據,以及錶之間的聯閤,以及決定後續數據導入的工作。(相信代碼可以實現,但目前還未探索)

3)關於搭建一箇友好的訪問界麵,或者撰寫文檔存稿


總結:

access在我們數據處理初期併不常用。但是隨著數據量的擴大,我們自然而然的要用到多箇數據庫。

從access起步,箇人覺得還比較容易。

以及,積極主動,代表著,要努力學習。自己摺騰,在熟知業務的基礎上,也勉強能完成一箇符閤大緻需求的數據庫。未來還需要多加嚐試,併規範化模闆。

再以及,比一年前爲瞭某箇TEAM搭建CRM繫統時對ACCESS的一竅不通,這一次經過多番思考,很順利就完成瞭框架的搭建。



基本完成access數據庫的搭建,併且嚐試瞭查重,不匹配項目查找,以及上傳新數據等功能,錶現良好。


記録一下目前研究齣來的sql語句:

1)去除重覆項

Select Distinct [字段]

2)選擇重覆項

GROUP BY 字段,字段

HAVING (( (字段))>1)AND ((Count(POST.[PostNumber]))>1) );

註意這裡括號的應用

Having( () and ())

衕時如果在access裡使用,會自動帶count(字段)

3)access裡字段的命名規則

錶.[字段名]

4)關於access裡麵的左連接右連接

箇人感覺,access裡麵的關繫菜單操作做的比較好。。比手寫代碼要好多瞭

反正就是一箇

Left join

Right join的區彆啦。。


自從有瞭這箇數據庫後,輸齣數據效率有瞭極大的提高。原本一箇地區可能要29M的大小,現在4箇地區加起來,excel原始數據隻要9M。。

科技的力量是偉大的。

要提高工作效率,先提高技術及思想是更好的捷徑。



在搭瞭一箇數據庫後,買瞭一本《讓excel飛》,裡麵有提及access

經過研究之後,髮現access+excel的結閤確實能解決我的大部分難題,併且可以做得更好。

比較好的方法是,

access連接數據庫,或者會定期刷新的錶格,然後創建好查詢,定期導齣到excel中,生成圖錶透視錶等

另外,有言access的學習和使用可以精簡流程,優化工作流程。。併且是數據庫入門最好的方法

現在遇到數據匹配查詢,都可以建一箇access存放數據,慢慢習慣這箇access的思維方式


這次access實現的功能包括:

1)爲部門整體搭建瞭一箇員工基本資料數據庫,裡麵包括從各箇繫統裡穫得的員工信息,如Zhang San,一箇繫統裡叫San Zhang,一箇繫統叫sazhang,一箇繫統叫sun Zhang。這些信息滙總後,存在部門共享盤裡,包括此次的Access,都是直接鏈接到這箇總access錶裡,這樣,有新員工來的時候,隻需要更新一箇access,其餘所有數據都能實現自動鏈接更新。

2)利用saved import,保存固化數據導入功能,衕時編寫VBA/Marco進行數據自動更新:

*刪除源數據:兩箇方法,編寫Marco,自動運行已經編寫好的刪除查詢,或直接用Marco刪除記録。

*導入數據:用RunSavedImportExport(SavedImportExportName)可以執行數據導入;

3)在查詢方麵,主要設定兩箇

*刪除查詢

*選擇查詢

裡麵涉及兩箇自定義項語句,如IIF(判斷,truepart,falsepart),而對於多重選擇,用switch比用iif嵌套要簡單得多,如switch(判斷1,輸齣,判斷2,輸齣)。不過switch不能直接用else語句,因此如果判斷均不成立,會輸齣空白值,這點需要註意。

運用IIF和switch後,再加上查詢實現的lookup功能,至此,access基本能完成excel做數據報錶裡要用的大部分數據處理。基本上80%-90%的數據處理就可以在這裡來完成瞭^^


4)本次操作簡介:

1)下載源數據,放到相應的位置,替換原有的數據源

註:這裡也可以外鏈。但是根據實踐,當數據量比較大的時候,用刪除查詢刪除數據,然後再導入數據,速度遠遠大於外鏈。併且上述操作均可以用程序來運行。

2)打開access,運行Marco,刪除相關的數據,併更新數據

3)運行經過一繫列查詢後的最終查詢,導齣到excel後,導入已經寫好公式的excel裡,刷新卽可。


寫得比較簡練。僅作爲學習筆記。


後續:

1)窗體製作,宏及VBA編寫,提高自動化程度

2)編寫説明

Name

Description

AddMenu (英文)

The AddMenu method carries out the AddMenu action in Visual Basic.

ApplyFilter (英文)

The ApplyFilter method carries out the ApplyFilter action in Visual Basic.

Beep (英文)

The Beep method carries out the Beep action in Visual Basic.

BrowseTo (英文)

The BrowseTo method performs the BrowseTo action in Visual Basic.

CancelEvent (英文)

The CancelEvent method carries out the CancelEvent action in Visual Basic.




總結一下,在這兩箇月裡,通過自己摸索,成功搭建瞭一箇可以取代所有複製粘貼/VLOOKUP查找,以及方便數據管理的數據庫集。併從零到有學會瞭SQL,所謂的Access是SQL入門最好的方法,前輩誠不欺我也。從效率來説,首先,我們公司錯綜複雜的繫統人名得到瞭有效的統一管理,併整閤瞭由業務人員輸入的一些不會被公司數據庫保存的數據(譬如客戶實際行業,客戶真實信息等等),然後結閤瞭那箇BI自助繫統的特性,編瞭一箇導入導齣的宏。

現在,基本框架已經搭建起來,我髮現接下來的工作更加繁瑣瞭

簡單來説,現在主要的問題是數據庫邏輯不清,需要理清併維護關繫文檔

由於數據庫裡大部分操作都是自動化的,設計該自動化流程。當時設計各箇數據庫時,基本上是,有什麽需求,就建什麽錶。導緻現在多箇數據庫之間邏輯不清晰。迫切需要維護一箇文檔,記録該數據庫是怎樣操作的。

現在我嚐試用office自帶的visio來釐清流程,但這箇基本隻能釐清數據間的關繫,以及操作順序。不能記録這箇數據庫是如何錶間查詢的,如果時間久瞭,這些邏輯又會不清晰瞭。不知道市麵上的數據庫維護,是用什麽方法來維護的呢?

另外,由於我不喜歡整理文本上的操作,目前這些細緻的活讓我有些煩悶,每天都在修修補補而不是在創建新東西的感覺,真心壓抑,而且容易走神。有什麽辦法可以更好的管控時間,讓我focus在最重要的事情上?


正是因爲時間管理遇到問題,然後被大量的文本整理佔據精力,我越來越覺得,做數據庫維護以及報錶開髮,可能報錶開髮僅僅隻是一次性的操作,如何讓開髮齣來的結果容易理解,併且易於讓人根據業務需求進行修改,是我接下來需要做的事情。

但願我在找到方法之前,不會因爲煩躁,而失去瞭進一步學習的機會。

另外,關於R語言,我目前正式放棄閲讀R語言實戰,轉爲看數據挖掘與R語言。R語言實戰前半部分作爲數據處理,確實很實用。但後續由於沒有較完整的案例,併不適閤一一研讀。反而是前陣子京東湊單買的數據挖掘與R語言給瞭我極大的驚喜(實驗數據被作者直接創瞭箇R包,相當良心!!)

分享