CÁC KIỂU DỮ LIỆU CỦA BIẾN

Một phần của tài liệu Microsoft Access 2000 Lập trình ứng dụng cơ sở dữ liệu. Tập 1 (Trang 43 - 48)

Tên Số byte Phạm vi

Byte 1 Ti 0 — 255.

Boolean 2 True hodc False.

Interger 2 Tu —32,768 đến 32,767.

Long 4 Tir -2,147,483,648 dén 2,147 ,483,647.

Single 4 Từ —3.402823E38 đến —1.401298E-45 đối

với số âm. '

Tit 1.40129E-45 dén 3.402823E38 déi voi số đương.

Double 8 Từ —1.79769313486232E308 đến

~14.94065645841247E-324 đối với số âm.

Từ 4.94065645841247E-324 đến

1.79769313486232E308 đối với số dương.

Curreny 8 Từ -922,337,203,685,477.5808 đến 22,337,203,685,477.5807

Date 8 Từ January 1, 100 dén December 31,9999 Object 4 Tham chiếu đến một đối tượng (xem câu

lệnh Set trong phần giúp đỡ trực tuyến).

String (cố Chiều dài Tối đa 64000 ký tự.

định)

String (biến) 10+ chiều Tối đa 2 tỷ ký tự.

dai

Variant (véi 16 Giống như kiểu Double.

các số)

Variant (với 22+ chiêu Giống nhu String.

35

các ký tự) đài

Người dùng Tùy thuộc Tổng số các thành phần hợp thành cho định nghĩa vào các kiểu dữ liệu khách hàng.

yếu tố

Khi bạn quên khai báo kiểu đữ liệu cho biến, Access gán cho nó kiểu dữ liệu Variant. Kiểu này rất linh động bởi vì Variant có thể lưu trữ cả bai giá trị chuỗi và số. Kiểu dữ liệu Variant có thể chứa tất cả các đữ liệu kiểu khác ngoại trừ kiểu do người sử dụng định nghĩa (đó là kiểu tập hợp cao cấp (superset) của tất cả các kiểu dữ liệu khác). Khi VBA thực hiện phép tính trên hai đối tượng kiểu Variant, đầu tiên nó lấy dữ liệu của phần tử thứ hai chuyển đổi kết quả ra kiểu phụ (subtype) đữ liệu của phần tử thứ nhất. Điều này làm cho việc xử lý biến kiểu Variant chậm hơn so với việc xử lý các kiểu dữ liệu khác. Ngoài ra kiểu phụ đữ liệu trả về bởi thao tác khiến cho ứng dụng của bạn thiếu chính xác.

Bạn cũng có thể st’ dung ham VarType để xem xét kiểu phụ dữ liệu của biến Variant. Hàm Var7ype nhận một kiểu Variant va trả về một hằng số trong VBA biểu thị kiểu phụ đữ liệu của giá trị trong kiểu dữ liệu Variant. Ví dụ nếu 0uarMyVoriable chứa chuỗi “Hi, there !, ham VarType(varMyVariable) tra vé chuéi vbString(8).

Tương tự, néu varMyVariable chia giá trị #1/1/2000#, ham VarType(varMyVariable) tra vé vbDate(7). Hay kiém tra tài liệu hướng dẫn trực tuyến hoặc Object Browser về danh sách đầy đủ của các hằng số kiểu phụ của kiểu Variant trả về giá trị bởi hàm VarT'ype..

Hàm chuyển đổi trong VBA cho phép bạn chuyển đổi một giá trị có kiểu dữ liệu Variant thành một kiểu phụ dữ liệu và còn cho phép bạn chỉ định kiểu dữ liệu của kết quả bạn muốn. Ví dụ, CDbi(uarMyVariable) biến đổi kiểu đữ liệu của biến varMyVariable thành kiểu đữ liệu Double.

Mặc dù có lỗi tiểm ẩn và nhu cầu xử lý rộng lớn thế nhưng Variant vẫn là kiểu đữ liệu được ưa chuộng. Nó là kiểu dữ liệu mặc

Chương 1: GIỚI THIỆU VỀ VBA

nhiên trong các field của bảng, query, report, và các field của form.

Nếu một ủeld trong bảng khụng chỉ định thi field sộ cho gia tri Null khi truy vấn (giả sử nó không được gán dữ liệu), đó là một trong hai giá trị đữ liệu đặc biệt của kiểu Variant. Giá trị Nuil thể hiện sự không có, không hiểu hoặc dữ liệu không hợp lệ. Bạn dùng ham IsNull trong VBA để kiểm tra cho giá trị Null và dùng toán tử Is Null cho các câu lệnh tiêu chuẩn query để kiểm tra gid tri Null cho một field. Bạn cẩn thận khi xử lý biến có chứa giá trị Null. Vì cdc gid tri Null lan truyền. Bất kỳ sự kết hợp một biến chứa giá trị NuÌl với biến khác đều tra vé gia tri Null.

GHI CHÚ: Chỉ có kiểu dữ liệu Variant chấp nhận gia tri Null, ban phải sử dụng kiểu này sẽ có ích cho ứng dụng của bạn.

Từ khóa Empty được dùng như một kiểu phụ của kiểu Variant và biểu hiện giá trị của biến không được khởi tạo. Bạn sử dụng hàm 7sEmpty trong VBA để xem một biến có giá trị hay không. Các giá trị Empty, Null, 0, và chuỗi rỗng “” là những giá trị khác nhau.

Khi VBA chuyển đổi một biến kiểu Variant thành Empty, nó sẽ chuyển thành sế 0 hoặc chuỗi rỗng tùy thuộc vào giá trị nào là thích hợp nhất.

Khi bạn cần gọi hàm API của Window thông qua thư viện liên kết động (dynamic link libraries viết tất là DLL), đôi khi ban cần sử dụng biến do người dùng định nghĩa. Bạn phải khai báo các biến thuộc kiểu người dùng định nghĩa ở giữa hai câu lệnh 7pe và EndType. Các đòng riêng biệt giữa hai câu lệnh này xác định thành phần của kiểu biến khách hàng. Ví dụ bạn có thể liên hệ về một quyển sách là một tập hợp các thành phần đưa vào ISBN, tựa sách, tác giả, nhà xuất bản và các trang. Bạn có thể khai báo kiểu đữ liệu khách hàng như sau: .

Type Book ISBN as Long Title as String Authors as String Publisher as String

` 37

Pages as Integer End Type

Sub MyBook

Dim udvMyBook as Book

udvMyBook.iSBN = 1234567890

udvMyBook. Title = “Programming Microsoft Access 2000"

udvMyBook.Authors = “Rick Dobson”

udvMyBook.Publisher = "Microsoft Press"

udvMyBook.Pages = 550 End Sub

Ban chén cap lénh Type .. EndType trong ving cdc khai bdo chung của một module. Thủ tục ÄfyBook tạo một. biến có kiểu người dùng định nghĩa Book.

Khai Bao

Biến và hằng có thể được khai báo (hằng là một dạng biến đặc biệt mà giá trị của nó không được thay đổi sau khi thiết lập bằng câu lệnh Consfan#). Việc khai báo biến phục vụ hai việc: Chỉ ra phạm vi của biến (vùng trong ứng dụng có thể truy xuất biến) và kiểu đữ liệu của biến. Đây là những lý do cần thiết để khai báo một biến trước khi sử dụng nó. Bạn có thể yêu cầu khai báo biến bằng cách sử dung cau lénh Option Explicit trong ving General cla một module.

Bạn sử dung céu lénh Public trong ving Declaration cia module để khai báo các biến mà các ứng dụng có thể sử dung nó ở bất kỳ thủ tục nào trong ứng dụng kể cả các module khác. Bạn có, thể dùng câu lệnh Priuate để khai báo một biến cục bộ trong một module (đúng ra điều này không cần thiết bởi vì câu lệnh Dim và Static m&c nhiên khai báo biến có phạm vi cục bộ trong module dé.)

Céu lénh Dim dành ra một vùng nhớ cho biến cho đến khi thủ tục chứa biến đó thực hiện xong. Điều này có nghĩa là biến được khai báo bằng lệnh Dứữn sẽ khởi tạo lại giá trị ban đầu ở mỗi lần gọi kế tiếp. Các biến được khai báo bằng câu lệnh ®S/z#ic tôn tại

trong module hoặc đến khi khởi động lại ứng dụng hay module. (Khi sử dụng khai báo biến tĩnh để tính tổng và số lần một thủ tục được gol.)

CHÚ Ý: Bạn có thé xóa giá trị của biến tĩnh trong một thủ tục bằng cách chọn lệnh Reset trên menu Run trong VBE.

Bạn có thể sử dụng từ khóa S/œfe khi khai báo biến trong hàm hay thủ tục. Từ khóa này làm việc tương tự như hàm và thủ tục. Nó bảo toàn các biến cục bộ trong hàm hoặc thủ tục của cùng module.

Bạn sử dụng từ khóa As trong lénh Dim hay Static dé chi ra kiéu dia liéu cho bién. Cau lénh Dim intMyNumber As Interger khai bao bién intMyNumber co kiéu dit ligu 1A sO nguyén.

Mỏng

Access cho phép bạn khai báo các máng. Máng là các biến chứa danh sách giá trị có cùng kiểu dữ liệu. Một máng có thể có nhiều chiều, tối đa đến 60 chiều. Ví dụ, câu lệnh Đữừn aryScores(2,1) As Interger tao ra mot mang hai chiều có 6 phần tử, 3 dòng, 2 cột

chứa các giá trị số nguyên.

Mặc nhiên chỉ số mảng bắt đầu từ 0. Câu lệnh Dim aryMyname(1) cé hai phần tử, đoạn chương trình của bạn có thể tham chiếu đến aryMyname(0) và aryMyname(l). Ban có thể sử dung cdu lénh Option Base I trong vung Declarations dé khai bdo mảng bắt đầu từ 1. Thủ tục dưới đây khai báo một mảng có hai phần tir, gan giá trị cho nó, in ra các phần tử và tính tổng tất cả các phần tử vào cửa số Immediate.

Sub ArrayTest()

Dim aryMyExpenses(1) As Currency, Total As Currency aryMyExpenses(0) = 10.5

aryMyExpenses(1) = 22.25

Total = aryMyExpenses(0) + aryMyExpenses(1)

Debug.Print aryMyExpenses(0) & " + " & aryMyExpenses(1) _

39

& "=" & Total End Sub

Mảng aryMyExpenses có hai phần tử thuộc kiểu đữ liệu Currency. Bởi vì kiểu đữ liệu Curreney có chiều dài 8 byte, nên mảng aryMyExpenses có tổng chiều dài là 16 byte. Khi bạn sử dụng mảng nhiều chiều và các chuỗi có độ đài biến đổi, việc sử dụng mảng có thể tốn nhiều bộ nhớ.

Bạn có thể dùng các từ khóa Đứn, Static, Publie và Priuate khi làm việc với các biến vô hướng để khai báo phạm vi của mảng.

Bạn có thể dùng ttt khéa ReDim dé lam dong luc thay déi chiéu của mang nhiéu chiéu.

Một phần của tài liệu Microsoft Access 2000 Lập trình ứng dụng cơ sở dữ liệu. Tập 1 (Trang 43 - 48)

Tải bản đầy đủ (PDF)

(383 trang)