劉 慧
[摘要]從熟練Visual Foxpro的用戶角度對比分析ACCESS與Visual Foxpro的差異,并詳細闡述ACCESS 中的數據庫對象及編程方法,引導學習者快速過渡到ACCESS的使用中來。
[關鍵詞]ACCESSVisual Foxpro數據庫對象
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)1110096-01
微軟公司有兩個流行的桌面數據庫開發工具,一個是其兼并FOX公司而得到的Visual Foxpro(簡稱VF),另一個是微軟自行研制開發的基于WINDOWS環境的Microsoft ACCESS,后來ACCESS成為Microsoft OFFICE的一個成員。隨著OFFICE越來越流行,越來越多的用戶也開始認識并使用ACCESS,很多VF用戶也開始轉向使用微軟公司的ACCESS。由于ACCESS與VF在很多方面有較大的差異,如文件的組織方式、數據類型、所用的編程語言和編程方法等,使得不少熟悉VF的用戶對ACCESS學習起來很吃力,一致放棄對ACCESS的學習。但是,ACCESS與VF相比有很多先進的方面,VF用戶只要掌握ACCESS的基本概念與編程方法,就能在自己熟悉的VF技術基礎上快速入門并深入掌握ACCESS。本文對VF和ACCESS進行一系列的對比分析,可以幫助熟練VF的用戶更好地學習與掌握ACCESS。
一、編程處理語句不同
1.VF與ACCESS的使用與編程方法很相似,但在文件組織方面有所不同:用VF建立的系統通常包含多種不同類型的文件,每個表、程序、查詢、索引、報表、菜單等內容都以文件的方式存放在磁盤上,可以通過項目文件對其他類型的文件進行組織與管理;ACCESS對數據庫的組織同大型數據庫系統(如SQL SERVER)的數據庫組織比較相似,把數據或程序元素稱為對象,所有的對象都存儲在一個物理文件中,而這個物理文件被稱為數據庫。
2.編程語言不同:在傳統的VF中,表、記錄等數據操縱或界面的設計采用xbase命令進行編程,在后來新版本中才引入了部分SQL語句,如SELECT;ACCESS是通過SQL對表、記錄等數據操作,程序及事件代碼的編寫采用Visual Basic for Application(低版本的ACCESS用access basic編程),簡單的程序設計用宏。
二、數據庫中包含的內容不同
1.ACCESS的數據庫窗口中包含六類不同的數據庫對象,它們分別是表(Table)、查詢(Query)、窗體(Form)、報表(Report)、宏(Macro)和模塊(Module)。ACCESS的數據庫如同一個容器,其中包含了所有的數據庫對象,與VF的項目文件不同,ACCESS將這些對象存儲在一個文件中。
2.雖然VF中的數據庫表也可以設置字段的輸入掩碼、缺省值、值范圍等字段屬性,但ACCESS中的表字段屬性設置更為豐富,設置規則也更為靈活。在ACCESS中,不需要專門的命令或操作建立和維護索引文件,要按某字段建立索引只需在該字段的索引屬性中選擇特定的索引類型即可,索引的建立、維護和使用都是通過ACCESS系統來完成的。在VF中用Index on、set index to等操作就可完成索引的建立、維護和使用,用戶不必關心這些內容。
3.ACCESS的數據庫中可以創建多個表,表與表之間能夠建立參照完整性關系。在VF中要用set relation、set skip命令來創建這樣的多對一和一對多關系,而ACCESS只需圖形界面操作就可完成一對多和多對一關系的建立,并且通過連鎖刪除與連鎖更新來確保相關表中記錄之間關系的有效性,且不能意外地刪除或更改相關數據。還需注意的是:VF中的記錄刪除包括邏輯刪除和物理刪除兩種,而ACCESS中的記錄被刪除后就不能恢復了。
4.查詢(Query):ACCESS中可以進行靈活的查詢,其實質就是SQL的數據操縱語言,利用查詢可以通過不同的方法來查看、更改以及分析數據,在ACCESS中,對表、記錄、字段的多數操作都可通過查詢來完成;在進行選擇查詢時,其結果等同于表,可以在表與查詢間建立關系,查詢結果也可象表一樣作為窗體和報表的記錄來源,利用查詢還能再建查詢。
在VF中,要使用SQL SELECT命令。顯然,ACCESS中選擇查詢比VF中的SQL SELECT命令功能更強大,使用更靈活。
三、表中的記錄瀏覽方法不同
1.在VF中默認情況下,表瀏覽窗口中在每條記錄前面都會出現每條記錄的記錄號,但ACCESS表瀏覽窗口中不會自動出現記錄號,可使用窗體的左下角記錄瀏覽欄上的按鈕改變當前窗口的記錄。也可以在表中定義一個字段類型為“自動編號”的字段,并設置為第一個字段,這樣系統會自動在每條記錄前面顯示相應的記錄。
2.若只是在窗體中前后移動記錄,不需要編寫程序,在窗體的設計視圖將窗體的navigation button值設置為true,則在窗體時就會出現導航按鈕,用戶通過單擊導航按鈕前移、后移記錄。
四、數據類型有差異
1.ACCESS與VF中的數值型字段類型定義和使用都不同。在VF的DBF文件中定義數值型字段需給出字段類型、寬度和小數位數,在數值型字段中存放數據時,VF只保存規定的小數位數并自動進行四舍五入。
ACCESS中的數值型字段存放數值型數據時需將字段設置為短整型、長整型、單精度、雙精度或貨幣型中的一種,在數值字段保存數據時不能保存固定長度的小數位數,也不能自動處理小數的四舍五入問題。盡管字段屬性中有小數位數和格式,但這兩個屬性只是確定數據的顯示方式而不是保留特定的小數位數,用戶必須在保存數值數據時自行處理保留的小數位數及四舍五入問題。
2.VF用戶使用ACCESS表時常遇到字段的空值(NULL)問題,VF中若字段沒輸入具體的值,則文本型字段為空格串、數字型字段為零值;ACCESS中,若字段沒輸入值則字段的值為NULL,NULL是ACCESS中的特殊常量,表示沒值,NULL不能賦予非Variant變量。通過DAO訪問記錄的字段時,使用NZ()函數將NULL轉換為字符型空串或數值型零值。
除此之外,二者還有很多不同點,如:ACCESS比VF的安全性高;Access可壓縮運行,VF數據庫太大不能壓縮運行等等。因此,VF用戶在學習ACCESS時,可以從以上幾個方面理解ACCESS和VF的差異,在平時的操作中多注意把原先的VF知識融匯到ACCESS中,就能輕松地學好ACCESS。
參考文獻:
[1]桂思強,《ACCESS數據庫設計基礎》,中國鐵道出版社,2003年9月出版.
[2]史濟民、湯觀全,《Visual Foxpro及其應用系統開發》,清華大學出版社,2007年4月出版.
作者簡介:
劉慧,女,山東壽光人,中國海洋大學在職碩士生,濰坊科技學院教師,主要研究方向:數據庫應用。