劉 慧
[摘要]從Vi sual Foxpro用戶的角度對比分析ACCESS與Visua]Foxpro的差異,并進一步闡述ACCESS中的數(shù)據(jù)庫對象及編程方法。
[關(guān)鍵詞]ACCESS Visual Foxpro數(shù)據(jù)庫對象
中圖分類號:TP3文獻標識碼:A文章編號:1671—7597(2009)1020063--01
自從ACCESS成為OFFICE的一個成員后,它在桌面數(shù)據(jù)庫市場上迅速崛起,越來越多的用戶開始使用ACCESS,很多vF用戶也開始轉(zhuǎn)向或使用微軟公司的ACCESS。由于ACCESS的文件組織、數(shù)據(jù)類型、編程語言、編程方法等與VF有較大的差異,致使不少vF用戶在學習ACCESS時感到困惑,從而放棄對ACCESS的學習。與vF相比,ACCESS有很多先進特性。vF用戶一旦掌握ACCESS的基本概念與編程方法,就能利用已有的vF知識能夠很快地掌握ACCESS。本文從多方面對VF~ACCESS進行對比分析,通過對比使傳統(tǒng)vF用戶更好地理解與掌握ACCESS。
一、ACCESS與VF在編程方法上的主要差異
1、ACCESS的使用與編程方法同vF的使用與編程方法非常相似,但在文件組織方面有所不同:用vF建立的系統(tǒng)通常包含很多不同類型的文件,每一個表、程序、報表、查詢、索引、菜單等內(nèi)容都以文件的方式存放在磁盤上,可以通過項目文件對其他類型的文件進行組織與管理;ACCESS對數(shù)據(jù)庫的組織同大型后臺數(shù)據(jù)庫系統(tǒng)(如SQL SERVER)的數(shù)據(jù)庫組織非常相似,不同數(shù)據(jù)或程序元素稱為對象,所有的對象都存儲在一個物理文件中,而這個物理文件被稱為數(shù)據(jù)庫。
2、編程語言不同:在傳統(tǒng)的vF中,表、記錄等數(shù)據(jù)操縱或是界面的設(shè)計采用的是xbase命令進行編程,高版本的vF中引入了部分SQL語句(如SQL—SELECT)主要用來完成數(shù)據(jù)的查詢:ACCESS中對表、記錄等數(shù)據(jù)操作主要通過SOL實現(xiàn),程序及事件代碼的編寫采用Visual Basic for Applicatlon(低版本的ACCESS用access basic編程),簡單的程序設(shè)計用宏。
二、對兩者數(shù)據(jù)庫里包含的內(nèi)容的比較
1、ACCESS的數(shù)據(jù)庫窗口中包含六類不同的數(shù)據(jù)庫對象,它們分別是表(Table)、查詢(Query)、窗體(Form)、報表(Report)、宏(Macro)和模塊(Module)。ACCESS的數(shù)據(jù)庫如同一個容器一樣包含了全部的數(shù)據(jù)庫對象,與vF的項目文件不同,ACCESS將這些對象存儲在一個文件中。
2、雖然VF中的數(shù)據(jù)庫表也可以設(shè)置字段的輸入掩碼、缺省值、值范圍等字段屬性,但ACCESS中的表字段屬性內(nèi)容更為豐富,設(shè)置規(guī)則也更為靈活。在ACCESS中,不需要用專門的命令或操作來建立和維護索引文件,按某字段建立索引只需在該字段的索引屬性中選擇特定的索引類型即可,索引的建立、維護和使用都是通過ACCESS系統(tǒng)來完成的。在vF中如:Indexon、set index to等操作就可完成索引的建立、維護和使用,用戶不必關(guān)心這些內(nèi)容。
3、查詢(Query):ACCESS中的查詢實質(zhì)上就是SQL的數(shù)據(jù)操縱語言,利用查詢可以通過不同的方法來查看、更改以及分析數(shù)據(jù),相當于VF中的SQL SELECT語句。在ACCESS中,對表、記錄、字段的多數(shù)操作都可通過查詢來完成。而vF中的查詢是只讀的。
ACCESS中選擇查詢比VF中的SQL SELECT命令使用起來更為方便靈活,在ACCESS中,選擇查詢在使用時等同于表,可以在表與查詢問建立關(guān)系,查詢也可象表一樣作為窗體和報表的記錄來源,利用查詢還能再建查詢。
三、在ACCESS和VF中如何濟覽表中的記錄
1在VF中默認情況下,表瀏覽窗口中在每條記錄前面都會出現(xiàn)每條記錄的記錄號,但ACCESS表瀏覽窗口中不會自動出現(xiàn)記錄號,可使用窗體的左下角記錄瀏覽欄上的按鈕改變當前窗口的記錄。也可以在表中定義一個字段類型為“自動編號”的字段,并設(shè)置為第一個字段,這樣系統(tǒng)會自動在每條記錄前面顯示相應(yīng)的記錄。
2若只是在窗體中前后移動記錄,不需要編寫程序,在窗體的毆汁視圖將窗體的nayigation button值設(shè)置為true,則在窗體時就會出現(xiàn)導航按鈕,用戶通過單擊導航按鈕前移、后移記錄。
四、ACCESS中的數(shù)據(jù)類型
1用戶初次使用ACCESS時常遇到的問題之一是ACCESS表中的數(shù)字型字段類型問題,在VF的OBF文件中定義數(shù)值型字段需給出字段類型、寬度和小數(shù)位數(shù),在記錄的數(shù)值型字段存放數(shù)據(jù)時,vF只保存規(guī)定的小數(shù)位數(shù)并自動處理四舍五入問題。ACCESS中表的數(shù)值型字段同vF的數(shù)值型字段不同,在表中的字段存放數(shù)值型數(shù)據(jù)時需將字段設(shè)置為短整型、長整型、單精度、雙精度或貨幣型中的一種,在數(shù)值字段保存數(shù)據(jù)時不能保存同定K度的小數(shù)位數(shù),也不能自動處理小數(shù)的四舍五入問題。盡管字段屬性中有小數(shù)位數(shù)和格式,但這兩個屬性只是確定數(shù)據(jù)的顯示方式而不是保留特定的小數(shù)位數(shù),用戶必須在保存數(shù)值數(shù)據(jù)時自行處理保留的小數(shù)位數(shù)及四舍五入問題。
2VF用戶使用ACCESS表時常遇到另一個問題是字段的NULL值問題,VF中若字段沒輸入具體的值,則文本型字段為空格串、數(shù)字型字段為零值;ACCESS中,若字段沒輸入值則字段的值為NULL(空值),NULL是ACCESS中的特殊常量表示沒值,NULl,不能賦予非Variant變量。通過DAO訪問記錄的字段時,使用Nz()函數(shù)將NULL轉(zhuǎn)換為字符型空串或數(shù)值型零值。
綜上所述,老VF用戶在學習ACCESS時,首先從以上四個方面理解ACCESS和vF的差異,在平時的操作中多注意把原先的vF知識融匯到ACCESS中,就能輕松地學好ACCESS。