Trong Access bạn phải chỉ ra các kiểu đữ liệu ở nhiều nơi, dua các biến vào trong các thủ tục và các bảng lưu trữ dữ liệu trong một thiết bị lưu trữ. Phần sau sẽ trình bày một số vấn để phát triển đi đôi với kiểu dữ liệu từ Jet4 và cách sử dụng biến trong thủ tục.
Jet
Access 2000 cung cấp sẵn hai phương tiện cơ sở dữ liệu. Trước đây Access đã được gắn liên với phương tiện cơ sở dữ liệu Jet.
Access 2000 gidi thiệu cơ sở dữ liệu tương thích với SQL Server 7, khả năng tương thích với SQL Server được bàn đến trong Chương 12. Phần này thảo luận về những đổi mới của Jet 4 tác động vào việc thiết kế ứng dụng trên Access 2000. Sự đổi mới này có thể làm ảnh hưởng đến kớch thước của ủle cơ sở dữ liệu và record khúa. Bạn làm việc với kiểu dữ liệu của field đã chọn nào (gồm cdc field Memo, Hyperlink (siêu liên kết) và khóa tự động tăng) và cách liên kết với nguồn dữ liệu bên ngoài.
Access 2000 lưu trữ tất cả nội dung văn bản và đữ liệu kiểu Memo vao dang Unicode. Điều này thay thế cho dạng tập hợp ký tự nhiều byte (MBCS = Multi Byte Character Set) được dùng trong các 31
phiên bản trước đây của Access cho các ngôn ngữ Nhật, Trung Quốc và các ngôn ngữ khác đã chọn. Unicode là một phần trong chuẩn ISO 10646, chuẩn này cung cấp cách mã hóa số cho tất cả các ngôn ngữ. Dạng thức mới này yêu cầu 2 byte thay vì 1 byte như trước đây để miêu tả một ký tự. Điều này có thể làm tăng gần gấp đôi kích thước của cỏc cơ sở dữ liệu do cỏc fủield ký tự cơ sở gõy ra. Để đến bù sự gia tăng này đJet tự động nén và xả nén loại đữ liệu này khi cần thiết. Nú nộn fủield memo cú chiều dài khoảng 4000 ký tự hoặc ớt hơn. Trong một fủield, cú thể nộn một số dũng nhưng khụng phải là tất cả các dòng dav biệt là field dữ liệu kiểu memo. Ca Access va ADO tự động nén các ký tự dạng Unicode nhưng DAO không cung cấp việc nén dữ liệu kiểu chuỗi. Những người viết chương trình trong Jet SQL có thể st dung ménh dé WITH COMPRESSION cho các bang chỉ định.
Để thêm dạng thức mới cho các kiểu dữ liệu ký tự, kích thước trang có thể tăng gấp đôi lên đến 4KB. Điều này có thể làm giảm sự xảy ra đồng thời những xung đột trang khoá. Jet ghi dia chi nay bằng cách khóa dòng đơn. Bạn có thể giảm tối thiểu các vấn dé xảy ra đồng thời bằng cách khóa các record riêng rẽ thay thế cho cả các trang. Access 2000 cho phép các người sử dụng cập nhật hai record trên cùng trang xảy ra đồng thời.
GHI CHÚ: Kích thước trang mới tăng thêm kích thước cơ sở dữ liệu tối đa từ 1.07 GB đến 2.14 GB.
Việc khóa dòng đơn là tùy chọn mặc định toàn bộ, nhưng các người sử dụng và các người phát triển có thể dự phòng để khóa trang truyền thống. Cỏc fủeld memo và cỏc chỉ mục khụng bao giờ hỗ trợ việc khóa dòng đơn. ADO qua truy cập dữ liệu hoặc Jet SQL cho phép rút tùy chọn để khóa ở mức trang. Các form Access qua truy cập dữ liệu và DAO luôn luôn qua khóa dòng đơn.
Dùng khóa các dòng đơn để giảm thiểu các xung đột đồng thời, nhưng phải trả một khoản phụ phí cài đặt và di chuyển các khóa record. Mức độ phụ phí này tùy thuộc vào kích thước record
a C hướng 1: GIỚI THIỆU VỀ VBA
quan hệ với kích thước trang cũng như số lượng các khóa cân thiết cho một tác vụ.
Sự chuyển tiếp qua Unicode cũng cho phép Microsoft Windows NT - sắp xếp thích hợp. Cải tiến này có khả năng tương thích và khả thi bởi vì Access 2000 có thể thích hợp với việc sắp xếp trên cả hai hệ thống Microsoft Windows 95 và Windows ẤT. Điều này là có thể bởi vì Windows 95 hỗ trợ việc sắp xếp cho những ngôn ngữ hệ thống mặc nhiên còn trong Windows NT hỗ trợ cho nhiều ngôn
ngữ. Ngoài ra, Visual Basic 6 và SQL Server 7 hỗ trợ cùng chuẩn
sắp xếp, cung cấp tiêu chuẩn hóa cross-product (liên sản phẩm).
Việc sắp xếp trên Access 2000 nhanh hơn 50% so với phần lớn các ngôn ngữ khác, nhưng sự gia tăng tốc độ sắp xếp còn lớn hơn đối với các ngôn ngữ nào đó, như tiếng Thai Lan chẳng hạn.
dJet 4 hỗ trợ việc đánh chỉ số cho 255 ký tự đầu tiên của kiểu đữ liệu Meno. Các version trước của Access va Jet khong hé trợ bất kỳ việc đánh chỉ số nào cho các field Memo. Độ dài giới hạn của một chỉ mục không thích hợp cho tat eA cdc img dung field Memo, nó đặc biệt quan trọng cho kiểu di liu Hyperlink, bat nguồn từ kiểu đữ liệu Memo. Các chỉ mục mới có thể làm nổi bật việc sắp xếp và tìm kiếm của các field Hyperlink,
Jet 4 cũng có thể cho phép người phát triển định rõ giá trị ban đầu và giá trị của bước nhảy cho các field tăng tự động. Ngoài ra, một câu lệnh ALTER TABLE mới cũng cho phép người phát triển Jet SQL khởi tạo lại giá trị ban đầu và giá trị bước nhảy. Bạn su dung cau lénh méi khdc SELECT @@ IDENTITY để lấy lại giá trị cuối cùng cho cột tăng tự động. Bạn truyền giá trị của câu lệnh SQL cùng với văn bản §QL cho phương pháp Open của đối tượng ]tecordset trong một câu lệnh ADO. Còn DAO không hỗ trợ cho câu lệnh mới này.
dJet 4 cho phép cài đặt mở rộng kỹ thuật ISAM trong một vài vùng có thể ảnh hưởng đến cơ hội phát triển Access với các nguồn dữ liệu bên ngoài. Text/HTNL ISAM mới cho phép đọc các tài liệu web theo chuẩn Unicode. Exchange ISAM mới tổ ra nổi bật trong
33
Chương 1: GIỚI THIÊU VỀ VIA
vài vùng. Đầu tiên, nó đọc các chỉ mục từ Exchange Server. Điều này làm tăng tốc đệ tìm kiếm các record trong nguồn dữ liệu Exchange. Thứ hai, ISAM mới hỗ trợ Windows Address Book cho khách hàng Mierosoft Outlook Express. Trong các mỗi trường kinh doanh nhỏ hơn, sự tập tâm thư tín bên ngoài hơn là bên trong, việc này tỏ ra có nhiều lợi ích to lớn (nếu chỉ xét đến hiệu năng cá nhân). Thứ ba, Jet có thể khôi phục lại khách hàng đã định trong các khách hàng của Outlook cũng như đối với khách hàng của Outlook Exchange. Cac người dùng co sở dữ liệu dBase va Paradox có thể vẫn thích truy cập read/write đến các cơ sở dữ liệu này qua Jet 5. Người ủng hộ yêu cầu này cho phiên bản gần đây phải mua được bản sao của Borland Database Engine từ một nguồn của nhóm thứ ba (third-party source).
Cac Kiểu Dữ Liệu
Thông thường VBA sử dụng các biến để lưu trữ kết quả tính toán, thiết lập các thuộc tính, xác định đối số cho các phương pháp và truyền giá trị giữa các thủ tục. Để thực hiện có hiệu quả, VBA sử dung một tập hợp các kiểu đữ liệu cho các biến. Một số tác vụ khác của Access như định nghĩa bảng và đối số các hàm dùng các kiểu dữ liệu. Phần này tập trung vào các kiểu dữ liệu cho các biến. Các kiểu dữ liệu khác cũng tương tự như vậy. Tuy nhiên Access cho phép sử dụng các kiểu đữ liệu khác nhau cho mỗi tác vụ,
Bảng dưới đây liệt kê các kiểu dữ liệu chính và phạm vi lưu trữ trong VBA. Người phát triển ứng dụng quan tâm đến mức độ chính xác cao của việc tính toán các con số của chúng có thể sử dụng kiểu dữ liệu Decimal như là một kiểu con của kiểu đữ liệu Variant. Kiéu di liệu Decimal là các số nguyên 12 byte không có dấu gọi là lũy thừa 10 của một biến. Bạn cũng có thể khai báo kiểu dữ liệu Decimal với câu lệnh Dim, nhưng bạn có thể lưu trữ bằng cách chuyển đổi bằng hàm CDec. Đây là ý tưởng tốt để sử dụng kiểu dữ liệu có kích thước nhỏ khi cần lưu trữ và giải phóng một số lượng lớn bộ nhớ để sử dụng cho các biến và ứng dụng khác. Mặt
Chương 1: GIỚI THIỆU VỀ VBA
khác nếu bạn cần tính toán con số chính xác, kiểu dữ liệu Decimal có thể đáp ứng yêu cầu này.