Object 數據類型
Object 變量作為 32 位(4 個字節)地址來存儲,該地址可引用應用程序中或某些其它應用程序中的對象。可以隨後(用 Set 語句)指定一個被聲明為 Object 的變量去引用應用程序所識別的任何實際對象。
Dim objDb As Object
Set objDb = OpenDatabase ("c:\Vb5\Biblio.mdb")
在聲明對象變量時,請試用特定的類,而不用一般的 Object(例如用 TextBox而不用 Control,或者像上面的例子那樣,用 Database 取代 Object)。運行應用程序之前,Visual Basic 可以決定引用特定類型對象的屬性和方法。因此,應用程序在運行時速度會更快。在“對象浏覽器”中列舉了特定的類。
當使用其它應用程序的對象,並在“對象浏覽器”中的“類”列表中列舉對象時,不要用 Variant 或一般的 Object,而應聲明對象。這樣可確保 VisualBasic 能夠識別引用的特定類型對象,在運行時解決引用問題。
詳細信息 關於創建和指定對象以及對象變量的更詳細信息,請參閱本章後面的“創建對象”部分。
轉換數據類型
Visual Basic 提供了幾種轉換函數,可用來將值轉換成特定數據類型。例如,用 CCur 函數將值轉換成 Currency 類型: PayPerWeek = CCur (hours * hourlyPay)
注意 對目標數據類型,傳遞到轉換函數的值必須是有效的,否則會發生錯誤。例如,如果想把 Long 型數轉換成 Integer 型數,那麼,Long 型數必須在 Integer 數據類型的有效范圍之內。
詳細信息 在聯機幫助中查找指定的轉換函數。
Variant 數據類型
Variant 變量能夠存儲所有系統定義類型的數據。如果把它們賦予 Variant 變量,則不必在這些數據的類型間進行轉換; Visual Basic 會自動完成任何必要的轉換。例如:
Dim SomeValue '缺省為 Variant。
SomeValue = "17" 'SomeValue包含 "17"(雙字符的串)。
SomeValue = SomeValue - 15 '現在, SomeValue 包含數值 2。
SomeValue = "U" & SomeValue '現在, SomeValue 包含 "U2" (雙字符的串)。
不必過多關注 Variant 變量中數據的類型就可對 Variant 變量進行操作,但須避免落入陷阱。
1.如果對 Variant 變量進行數學運算或函數運算,則 Variant 必包含某個數。更詳細的信息,請參閱《聯機手冊》中“高級變量主題”中的“變量中存儲的 Numeric 值”部分。
2.如果正在連接兩個字符串,則用 " & " 操作符而不用 " + " 操作符。更詳細的信息,請參閱《聯機手冊》中“高級變量主題”中的“Variant 變量中存儲的 Strings”部分。
除了可以像其它標准數據類型一樣操作外,Variants 還包含三種特定值:Empty,Null 和 Error。
Empty 值
有時需要知道是否已將一個值賦予所創建的變量。在賦值之前,Variant 變量具有值 Empty。值 Empty 是異於0、零長度字符串 ("") 或 Null 值的特定值。可用 IsEmpty 函數測試 Empty 值:
If IsEmpty (Z) Then Z = 0
當 Variant 變量包含 Empty 值時,可在表達式中使用它;將其作為 0 或零長度字符串來處理,這要根據表達式來定。
只要將任何值(包括 0、零長度字符串或 Null)賦予 Variant 變量,Empty 值就會消失。而將關鍵字 Empty 賦予 Variant 變量,就可將 Variant 變量恢復為 Empty。
Null 值
Variant 數據類型還可包含一特定值:Null。Null通常用於數據庫應用程序,表示未知數據或丟失的數據。 由於在數據庫中使用 Null 方法,Null 具有某些唯一的特性:
1.對包含 Null 的表達式,計算結果總是 Null。於是說 Null 通過表達式“傳播”;如果表達式的部分之值為 Null,那麼整個表達式的值也為Null。
2.將 Null 值、含 Null 的 Variant 變量或計算結果為 Null 的表達式作為參數傳遞給大多數函數,將會使函數返回 Null。
3.Null 值經由返回 Variant 數據類型的內在函數傳播。
也可用 Null 關鍵字指定 Null 值。