前沿拓展:整形數(shù)據(jù)占多少個字節(jié)


在Access中,我們通過創(chuàng)建表、查詢、窗體、報表、頁、宏等對象,可以將數(shù)據(jù)整合在一起,快速建立數(shù)據(jù)庫管理系統(tǒng)。但是通過這些對象創(chuàng)建的數(shù)據(jù)管理系統(tǒng)有一定的局限性,無法實現(xiàn)復雜的數(shù)據(jù)管理。

而VBA則可以對Access的數(shù)據(jù)管理功能進行擴展,使開發(fā)出來的系統(tǒng)更具靈活性和自主性,可以完成一些無法實現(xiàn)的功能。

在進入 VBA 編程之前, 首先需要了解VBA 支持的數(shù)據(jù)類型,因為不同的數(shù)據(jù)類型有著不同的存儲方式和數(shù)據(jù)結(jié)構(gòu)。如果不指定數(shù)據(jù)類型,VBA會默認將其作為變體型 Variant,此類型可以根據(jù)實際需要自動轉(zhuǎn)換成相應的其他數(shù)據(jù)類型。

但是, 讓 VBA 自動轉(zhuǎn)換數(shù)據(jù)類型會使程序的執(zhí)行率降低, 所以在編寫 VBA 代碼時, 必須定義好數(shù)據(jù)類型, 選擇占用字節(jié)少、 又能很好地處理數(shù)據(jù)的類型, 才能程序運行更快。

VBA 支持的數(shù)據(jù)類型主要有字符串型、 數(shù)值型、 日期型、 貨幣型等。除了這些內(nèi)置的數(shù)據(jù)類型外, 用戶還可以自定義數(shù)據(jù)類型。下表中列出了常用的數(shù)據(jù)類型供用戶參考。

技術(shù)看板

在 Access 中, 字段的數(shù)據(jù)類型與 VBA 中的數(shù)據(jù)類型大多都是相對應的。 例如, 字段的貨幣類型與 VBA 中的貨幣型相對應, 是 / 否類型與 VBA中的布爾型相對應。

1. 字符串型

字符串型用來存儲字符串數(shù)據(jù),它是一個字符序列, 由字母、 數(shù)字、符號和文字等組成。 在 VBA 中, 字符串類型分為定長字符串型和變長字符串型兩種。

用戶定義字符串時, 需要用雙引號把字符串引起來, 而雙引號并不算在字符串中。 例如, "book"、 " 員工信息表 " 和 ""(空白字符串) 等, 都表示字符串型數(shù)據(jù)。

具體來說, 定義字符串型數(shù)據(jù)的方法如下。

Dim str1 as String

這表示, 聲明一個名為 str1 的字符串型變量。對于定長字符串的定義,可以使用"String*Size" 的方式。 例如:

Dim str2 as String*122. 數(shù)值數(shù)據(jù)型

數(shù)值數(shù)據(jù)型是可以進行數(shù)學計算的數(shù)據(jù), 在 VBA 中, 數(shù)值數(shù)據(jù)型分為字節(jié)、 整型、 長整型、 單精度浮點型和雙精度浮點型。

其中, 整型和長整型數(shù)據(jù)是不帶小數(shù)點和指數(shù)符號的數(shù)。 例如:

111、 -189、 222% 均表示整型數(shù)據(jù)。111&、 -189& 均表示長整型數(shù)據(jù)。

單精度浮點型和雙精度浮點型數(shù)據(jù)是帶有小數(shù)部分的數(shù)。 例如:

111 !、 -189.75、 0.111E+3 均表示單精度浮點型數(shù)據(jù)。111#、 -189.75#、 0.111E+3#、0.111D+3 均 表 示 雙 精 度 浮 點 型數(shù)據(jù)。

在 VBA 中, 定義整型數(shù)據(jù)變量有兩種方法: 一種是直接使用 Integer關(guān)鍵字, 類似前文中定義字符串型變量的方法; 另一種是直接在變量的后面添加一個百分比符號(%)。 例如:

Dim a1 as Integer Dim a2%

以上定義的 a1 和 a2 都是整型數(shù)據(jù)變量。

技術(shù)看板

定義其他數(shù)值數(shù)據(jù)類型的方法與定義整型數(shù)據(jù)變量的方法類似, 只是后面的類型標識符不一樣。

3. 日期型

日期型數(shù)據(jù)用來表示日期和時間信息, 在存儲時, 日期型數(shù)據(jù)的整數(shù)部分被存儲為日期值, 小數(shù)部分被存儲為時間值。

用戶定義時間類型數(shù)據(jù)時, 需要用井號(#) 把日期和時間括起來。例如:

#August 5,2018#、 #2018/12/25#、#2018-12-25 15:25:30# 等,均是表示日期型數(shù)據(jù)。

定義日期型數(shù)據(jù)的方法如下。

Dim aa as date

技術(shù)看板

在 Access 中, 可以使用 Now() 函數(shù)來提取當前時間, 使用 Date() 函數(shù)來提取當前日期。

4. 貨幣型

貨幣型是為了表示貨幣而設置的, 此類數(shù)據(jù)以 8 字節(jié)進行存儲, 并到小數(shù)點后4位,小數(shù)點前15位,而小數(shù)點后 4 位的數(shù)字都將被舍去。

定義貨幣型數(shù)據(jù)的方法如下。

Dim cost as currency5. 布爾型

布爾型是用于邏輯判斷的數(shù)據(jù)類型, 其值為邏輯值。 布爾型數(shù)據(jù)只有True(真) 或 False(假) 兩個值。

定義布爾型數(shù)據(jù)的方法如下。

Dim c as a Boolean

技術(shù)看板

將布爾數(shù)據(jù)轉(zhuǎn)換為整型時, True轉(zhuǎn)換為 -1, False 轉(zhuǎn)換為 0。 當將其他類型數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)時, 非 0數(shù)據(jù)轉(zhuǎn)換為 True, 0 轉(zhuǎn)換為 False。

6. 變體型

當用戶在編寫 VBA 時, 如果沒有定義某個變量的數(shù)據(jù)類型, 那么系統(tǒng)會自動將這個變量定義為變體型。如果以后調(diào)用這個數(shù)據(jù), 就可以根據(jù)需要改變?yōu)椴煌臄?shù)據(jù)類型。

變體型是一種特殊的數(shù)據(jù)類型,除了定義長字符串型和用戶自定義類型外, 它可以包含任何各類的數(shù)據(jù),甚至包含 Empty、 Error、 Nothing 和 Null等特殊值。

7. 自定義的數(shù)據(jù)類型

除了前文中系統(tǒng)提供的基本數(shù)據(jù)類型外, 在 VBA 中, 用戶還可以自定義數(shù)據(jù)類型。 自定義的數(shù)據(jù)類型實際是由基本數(shù)據(jù)類型構(gòu)建而成的一種數(shù)據(jù)類型, 其語法格式如下。

Type 數(shù)據(jù)類型名 類型元素名 as 系統(tǒng)數(shù)據(jù)類型名 End Type

例如, 要定義一個名為 Lily 的用戶數(shù)據(jù)類型:

Type Lily RDnumber as Long RDname as String RDphone as Long RDbirthday as Date End Type

上文中共包含了 4 個元素。

RDnumber 定義了編號為長整型變量。RDname 定義了姓名為字符串型變量。RDphone 定 義 了 電 話 為 長 整 型變量。RDbirthday 定義了生日為日期型變量。

拓展知識:整形數(shù)據(jù)占多少個字節(jié)

還有其他疑惑?想了解更多?可以點擊 【在線咨詢】