使用Access兩個月的應用心得

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

根據自己的工作業務邏輯,建立了一個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包,相當良心!!)

分享
北京十一选五基本走势