鄭 煜
[摘 要]J.Martin給數(shù)據(jù)庫(kù)下了一個(gè)比較完整的定義:數(shù)據(jù)庫(kù)是存儲(chǔ)在一起的相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)是結(jié)構(gòu)化的,無(wú)有害的或不必要的冗余,并為多種應(yīng)用服務(wù);數(shù)據(jù)的存儲(chǔ)獨(dú)立于使用它的程序;對(duì)數(shù)據(jù)庫(kù)插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進(jìn)行。當(dāng)某個(gè)系統(tǒng)中存在結(jié)構(gòu)上完全分開(kāi)的若干個(gè)數(shù)據(jù)庫(kù)時(shí),則該系統(tǒng)包含一個(gè)“數(shù)據(jù)庫(kù)集合”。
[關(guān)鍵詞]數(shù)據(jù)庫(kù) Access 質(zhì)量
[中圖分類(lèi)號(hào)]G250[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1007-9416(2009)12-0109-02
1 引言
數(shù)據(jù)庫(kù)有廣泛的應(yīng)用空間,可是一般人會(huì)認(rèn)為數(shù)據(jù)庫(kù)是專(zhuān)業(yè)化知識(shí),數(shù)據(jù)庫(kù)開(kāi)發(fā)應(yīng)該是軟件工程師才能夠完成的工作,從而使得數(shù)據(jù)庫(kù)的應(yīng)用客戶都視其復(fù)雜的開(kāi)發(fā)技術(shù)為畏途。數(shù)據(jù)庫(kù)離我們到底有多遠(yuǎn)?以下我們就以一個(gè)生產(chǎn)廠的質(zhì)量管理系統(tǒng)開(kāi)發(fā)過(guò)程進(jìn)行表述。
2 數(shù)據(jù)庫(kù)的支架
數(shù)據(jù)庫(kù)不會(huì)憑空產(chǎn)生,數(shù)據(jù)是數(shù)據(jù)庫(kù)的靈魂。小到家庭主婦的賬本,大到谷歌全球個(gè)人信息數(shù)據(jù)庫(kù)。凡是有數(shù)據(jù)需要記錄查詢的地方都是一個(gè)數(shù)據(jù)庫(kù)。在這里我們用一個(gè)工廠產(chǎn)品的質(zhì)量記錄作為數(shù)據(jù)庫(kù)的支架,用最簡(jiǎn)單的微軟Access數(shù)據(jù)庫(kù)軟件來(lái)編寫(xiě)程序。
我們先來(lái)熟悉下數(shù)據(jù)庫(kù)需要完成的工作,我們將產(chǎn)品的檢測(cè)性息記錄保存下來(lái),并在日后隨時(shí)可以查詢到。生成記錄單,生成一段時(shí)期的記錄情況報(bào)表。
3 數(shù)據(jù)庫(kù)的開(kāi)發(fā)過(guò)程
當(dāng)然我們首先是打開(kāi)Accsee軟件,然后慢慢的進(jìn)行后面的操作。
根據(jù)上面的需要,我們的數(shù)據(jù)庫(kù)要具備以下功能,數(shù)據(jù)輸入,數(shù)據(jù)各種條件查詢,各種報(bào)表的生成。如圖1所示。
3.1 數(shù)據(jù)表
首先,我們要根據(jù)產(chǎn)品類(lèi)別的不同分別建立幾張表,A類(lèi)產(chǎn)品、B類(lèi)產(chǎn)品、C類(lèi)產(chǎn)品。將我們需要記錄的項(xiàng)目定義在表中。比如產(chǎn)品編號(hào)、產(chǎn)品名稱(chēng)、檢測(cè)的各種數(shù)據(jù)、檢測(cè)結(jié)果等。這里面需要有一個(gè)主鍵,意思就是每一條記錄都會(huì)有一個(gè)地方是不會(huì)重復(fù)的,這里我們定義產(chǎn)品編號(hào)為主鍵,因?yàn)橹挥挟a(chǎn)品編號(hào)是一一對(duì)應(yīng)的。
我們數(shù)據(jù)的錄入不可能直接在表里面操作,雖然感覺(jué)上直接操作表上的數(shù)據(jù)熟悉的人會(huì)比較輕松,但是容易誤操作。特別是還有其他不是很熟練的人。這里我們需要自己做一個(gè)人機(jī)界面——窗口。
3.2 表窗口
于是,我們對(duì)應(yīng)每一張表,做一個(gè)數(shù)據(jù)輸入的窗口界面,這里我們需要輸入的過(guò)程中同時(shí)觀察到表的內(nèi)容,我們選擇用分割窗口來(lái)做。自動(dòng)生成分割窗口后,我們可以看到之前我們?cè)诒碇卸x的數(shù)據(jù)都羅列在新的窗口中,我們可以通過(guò)在窗口中輸入數(shù)據(jù)來(lái)改變表中的數(shù)據(jù)。除了這些,我們還需要一些其他的按鈕來(lái)幫助我們完善界面功能,有很多按鈕系統(tǒng)都自帶了的,很方便,直接加載就可以了,比如前進(jìn)、后退、最前列、最后列、刪除、退出等。我們這里需要定義一個(gè)按鈕,準(zhǔn)備將它指引到操作界面上去。這里為了方便數(shù)據(jù)輸入,在窗口編程界面頻繁的使用了下面的程序。
Private Sub編號(hào)_Enter()
On Error GoTo AddNew
If IsNull(編號(hào).Value) Then
編號(hào).Value = "D" & Mid(Date, 3, 2) & Format(CLng(Mid(DMax("mid(編號(hào),2,6)", "XL"), 3, 4) + 1), "0000")
End If
Exit Sub
AddNew:
If Err.Number = 94 Then
產(chǎn)品編號(hào).Value = "D" & Mid(Date, 3, 2) & "0001"
End If
End Sub
意思是自動(dòng)生成編號(hào)格式為T(mén)090001、T090002、T090003……的累加編號(hào)。
Private Sub 額定電流_Enter()
If IsNull(額定電流.Value) Then
額定電流.Value = DLast("額定電流", "XL")
End If
End Sub
自動(dòng)重復(fù)上次輸入的數(shù)據(jù)。這兩段程序可以大幅減輕我們數(shù)據(jù)輸入的工作量。
3.3 集合查詢
表是存放數(shù)據(jù)的地方,一般情況我們都可以隨意的修改里面的數(shù)據(jù),其實(shí)是相當(dāng)不安全的,我們查找調(diào)用的數(shù)據(jù)最好不要直接引用數(shù)據(jù)表,容易被誤操作。這里我們建立一個(gè)查詢,切換到SQL試圖用SELECT “項(xiàng)目” from “表名稱(chēng)”將數(shù)據(jù)表的內(nèi)容反映到查詢,以后我們調(diào)用的數(shù)據(jù)由查詢這里來(lái),我們?cè)谡{(diào)用的過(guò)程中就不能修改里面的內(nèi)容,加強(qiáng)安全性。如果想把幾張表合為一張,可以使用UNION語(yǔ)句來(lái)解決這個(gè)問(wèn)題。
3.4 操作界面
這是軟件的人機(jī)界面,主要在上面有鏈接到表窗口、各種查詢功能的按鈕。
3.5 登陸界面
為了防止無(wú)關(guān)人隨意進(jìn)入,特別制定的一個(gè)登陸界面,里面顯示一些軟件信息,以及密碼輸入界面。只需要簡(jiǎn)單的條件語(yǔ)句就可以定義密碼。密碼的設(shè)置五花八門(mén),我這里只是一個(gè)彩蛋,Text77.Value我是默認(rèn)的一個(gè)時(shí)間time()。
If Text72.Value = Left(Right(Text77.Value, 5), 2) Then
DoCmd.Close
DoCmd.OpenForm "操作界面"
大概意思是將密碼定義為現(xiàn)在的分鐘數(shù),是一個(gè)隨時(shí)間變化而變化的動(dòng)態(tài)密碼。
3.6 條件查詢
這里可以定義一些查詢條件,比如在某個(gè)時(shí)間段,產(chǎn)品檢驗(yàn)合格情況,產(chǎn)品型號(hào)等,這里大量引用了where條件語(yǔ)句。將查詢的結(jié)果顯示在報(bào)表上面。
OpenReport“報(bào)表”
Where“條件”
3.7 生成報(bào)表
我們?cè)僭跅l件查詢基礎(chǔ)上,建立報(bào)表文件,將查詢的內(nèi)容調(diào)入報(bào)表相應(yīng)的文本框。格式和具體內(nèi)容根據(jù)工藝要求可以隨時(shí)修改,只要保持整潔條例清晰就好了。報(bào)表上面推薦講查詢時(shí)間與查詢條件都引用上去,讓報(bào)表更加直觀。
3.8 保存報(bào)表
生成的報(bào)表有的時(shí)候只是需要看一下,有的時(shí)候需要打印下來(lái),當(dāng)然還有的時(shí)候希望能保存為電子文檔。這里推薦使用PDF文件打印機(jī),可以通過(guò)打印成電子文檔PDF的方式講報(bào)表以圖片的形式保存下來(lái)。
4 結(jié)語(yǔ)
數(shù)據(jù)庫(kù)的無(wú)處不在,關(guān)鍵看人們?cè)趺慈?yīng)用。應(yīng)用得當(dāng)不但可以提高工作效率,還能檢查工作中的各種不足,對(duì)工作狀態(tài)的監(jiān)控提供第一手的資料。數(shù)據(jù)庫(kù)質(zhì)量管理系統(tǒng)只是其中一個(gè)小小的應(yīng)用,不但達(dá)到了很好的管理效果,還大量節(jié)約了人力,節(jié)約了大量紙張。