長期用VB50進行數據庫應用軟件的編程,遇到過不少問題,走了不少彎路,也積累了不少經驗。在此,將它們做個小結,希望對同樣從事VB50編程的朋友有所幫助。
1、在Form_Load事件中不能對Data控件進行控制
如果確實需在窗體被打開時使用Data控件,可在Form_Activate事件中進行控制。由於Activate事件在窗體被激活時發生,就是說在窗體被打開時發生,同時在窗體得到焦點時也會發生。要區分是否為窗體被打開的情況,只要設置一變量,在第一次Activate事件發生時對Data控件進行控制,然後對此變量進行設置,使以後的Activate事件不再執行對Data控件進行控制的語句。
2、DBGrid控件列寬的控制
在設計時可通過DefColWidth屬性來設置列寬,但這樣無法為不同的列設置不同的寬度。那麼到底要怎麼分別設置每一列的寬呢?這同樣可在窗體的Activate事件中實現。
Form_Activate()
DBGrid1盋olumns(0)盬idth=1000 ′為第一列設置寬度
DBGrid1盋olumns(1)盬idth=2500 ′為第二列設置寬度
DBGrid1盋olumns(2)盬idth=1000 ′為第三列設置寬度
End Sub
3、IsNull函數的應用
判斷一值是否為空,要用IsNull函數來實現,而不能用判斷語句來實現,例如:
If Data1盧ecordset盕ields(1)盫alue=NULL Then
′要執行的語句
End If
這樣無論Data1盧ecordset盕ields(1)盫alue的值是否為NULL,要執行的語句都執行不了,因為(Data1盧ecordset盕ields(1)盫alue=NULL)永遠等於False,所有含有“NULL”的判斷式的值都是False。正確的處理方法為:
If IsNull(Data1盧ecordset盕ields(1)盫alue)=True Then
′要執行的語句
End If
不明白的地方可查找關於“IsNull”函數的說明和幫助。
4、使用FoxPro數據庫
大家知道打開Access數據庫很簡單,比如要打開一個當前目錄下名為“book眒db”的數據庫文件,如下所示:
Dim db1 As Database ′定義變量
Set db1=OpenDatabase(″book眒db″) ′打開數據庫文件
如果要打開的是FoxPro數據而不是Access數據怎麼辦呢?首先要明白FoxPro中所謂的數據庫只是Access中的表而已。其打開方法亦很簡單,如下:
Dim db1 As Database
Set db1=OpenDatabase(″C:BOOK″,False,False,″FoxPro 25″)
′BOOK為一包含所要FoxPro數據庫文件(*眃bf)的目錄
在這裡用FoxPro數據庫文件的目錄來代替Access中的數據庫名。在使用中,“C:BOOK”目錄下的所有dbf文件都是db1的表,表名即為文件名除去“眃bf”。其它的使用方法都和用Access數據庫時一樣。如有不明之處,請查閱關於“OpenDatabase”函數的說明和幫助。