1. Trang chủ
  2. » Giáo án - Bài giảng

Microsoft Access 2000 Lập trình ứng dụng cơ sở dữ liệu. Tập 1

383 3.1K 4
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Page 1

  • Page 2

  • Page 3

  • Page 4

  • Page 5

  • Page 6

  • Page 7

  • Page 8

  • Page 9

  • Page 10

  • Page 11

  • Page 12

  • Page 13

  • Page 14

  • Page 15

  • Page 16

  • Page 17

  • Page 18

  • Page 19

  • Page 20

  • Page 21

  • Page 22

  • Page 23

  • Page 24

  • Page 25

  • Page 26

  • Page 27

  • Page 28

  • Page 29

  • Page 30

  • Page 31

  • Page 32

  • Page 33

  • Page 34

  • Page 35

  • Page 36

  • Page 37

  • Page 38

  • Page 39

  • Page 40

  • Page 41

  • Page 42

  • Page 43

  • Page 44

  • Page 45

  • Page 46

  • Page 47

  • Page 48

  • Page 49

  • Page 50

  • Page 51

  • Page 52

  • Page 53

  • Page 54

  • Page 55

  • Page 56

  • Page 57

  • Page 58

  • Page 59

  • Page 60

  • Page 61

  • Page 62

  • Page 63

  • Page 64

  • Page 65

  • Page 66

  • Page 67

  • Page 68

  • Page 69

  • Page 70

  • Page 71

  • Page 72

  • Page 73

  • Page 74

  • Page 75

  • Page 76

  • Page 77

  • Page 78

  • Page 79

  • Page 80

  • Page 81

  • Page 82

  • Page 83

  • Page 84

  • Page 85

  • Page 86

  • Page 87

  • Page 88

  • Page 89

  • Page 90

  • Page 91

  • Page 92

  • Page 93

  • Page 94

  • Page 95

  • Page 96

  • Page 97

  • Page 98

  • Page 99

  • Page 100

  • Page 101

  • Page 102

  • Page 103

  • Page 104

  • Page 105

  • Page 106

  • Page 107

  • Page 108

  • Page 109

  • Page 110

  • Page 111

  • Page 112

  • Page 113

  • Page 114

  • Page 115

  • Page 116

  • Page 117

  • Page 118

  • Page 119

  • Page 120

  • Page 121

  • Page 122

  • Page 123

  • Page 124

  • Page 125

  • Page 126

  • Page 127

  • Page 128

  • Page 129

  • Page 130

  • Page 131

  • Page 132

  • Page 133

  • Page 134

  • Page 135

  • Page 136

  • Page 137

  • Page 138

  • Page 139

  • Page 140

  • Page 141

  • Page 142

  • Page 143

  • Page 144

  • Page 145

  • Page 146

  • Page 147

  • Page 148

  • Page 149

  • Page 150

  • Page 151

  • Page 152

  • Page 153

  • Page 154

  • Page 155

  • Page 156

  • Page 157

  • Page 158

  • Page 159

  • Page 160

  • Page 161

  • Page 162

  • Page 163

  • Page 164

  • Page 165

  • Page 166

  • Page 167

  • Page 168

  • Page 169

  • Page 170

  • Page 171

  • Page 172

  • Page 173

  • Page 174

  • Page 175

  • Page 176

  • Page 177

  • Page 178

  • Page 179

  • Page 180

  • Page 181

  • Page 182

  • Page 183

  • Page 184

  • Page 185

  • Page 186

  • Page 187

  • Page 188

  • Page 189

  • Page 190

  • Page 191

  • Page 192

  • Page 193

  • Page 194

  • Page 195

  • Page 196

  • Page 197

  • Page 198

  • Page 199

  • Page 200

  • Page 201

  • Page 202

  • Page 203

  • Page 204

  • Page 205

  • Page 206

  • Page 207

  • Page 208

  • Page 209

  • Page 210

  • Page 211

  • Page 212

  • Page 213

  • Page 214

  • Page 215

  • Page 216

  • Page 217

  • Page 218

  • Page 219

  • Page 220

  • Page 221

  • Page 222

  • Page 223

  • Page 224

  • Page 225

  • Page 226

  • Page 227

  • Page 228

  • Page 229

  • Page 230

  • Page 231

  • Page 232

  • Page 233

  • Page 234

  • Page 235

  • Page 236

  • Page 237

  • Page 238

  • Page 239

  • Page 240

  • Page 241

  • Page 242

  • Page 243

  • Page 244

  • Page 245

  • Page 246

  • Page 247

  • Page 248

  • Page 249

  • Page 250

  • Page 251

  • Page 252

  • Page 253

  • Page 254

  • Page 255

  • Page 256

  • Page 257

  • Page 258

  • Page 259

  • Page 260

  • Page 261

  • Page 262

  • Page 263

  • Page 264

  • Page 265

  • Page 266

  • Page 267

  • Page 268

  • Page 269

  • Page 270

  • Page 271

  • Page 272

  • Page 273

  • Page 274

  • Page 275

  • Page 276

  • Page 277

  • Page 278

  • Page 279

  • Page 280

  • Page 281

  • Page 282

  • Page 283

  • Page 284

  • Page 285

  • Page 286

  • Page 287

  • Page 288

  • Page 289

  • Page 290

  • Page 291

  • Page 292

  • Page 293

  • Page 294

  • Page 295

  • Page 296

  • Page 297

  • Page 298

  • Page 299

  • Page 300

  • Page 301

  • Page 302

  • Page 303

  • Page 304

  • Page 305

  • Page 306

  • Page 307

  • Page 308

  • Page 309

  • Page 310

  • Page 311

  • Page 312

  • Page 313

  • Page 314

  • Page 315

  • Page 316

  • Page 317

  • Page 318

  • Page 319

  • Page 320

  • Page 321

  • Page 322

  • Page 323

  • Page 324

  • Page 325

  • Page 326

  • Page 327

  • Page 328

  • Page 329

  • Page 330

  • Page 331

  • Page 332

  • Page 333

  • Page 334

  • Page 335

  • Page 336

  • Page 337

  • Page 338

  • Page 339

  • Page 340

  • Page 341

  • Page 342

  • Page 343

  • Page 344

  • Page 345

  • Page 346

  • Page 347

  • Page 348

  • Page 349

  • Page 350

  • Page 351

  • Page 352

  • Page 353

  • Page 354

  • Page 355

  • Page 356

  • Page 357

  • Page 358

  • Page 359

  • Page 360

  • Page 361

  • Page 362

  • Page 363

  • Page 364

  • Page 365

  • Page 366

  • Page 367

  • Page 368

  • Page 369

  • Page 370

  • Page 371

  • Page 372

  • Page 373

  • Page 374

  • Page 375

  • Page 376

  • Page 377

  • Page 378

  • Page 379

  • Page 380

  • Page 381

  • Page 382

  • Page 383

Nội dung

Trang 1

THU VIEN | nh Tê (chủ biên)

ĐẠI HỌC THUY SAN

D 005.711 M 300 ứng CITT: a: af SỞ oT eee A

nh

= ©

& N

- lạm -

all ÁP s oh

EE 2 OO ail

Na ea == |

ee

ˆ Nhiều giải pháp điều hành dữ liệu dinh chóng, dễ dàng nhất từ trước tới nay

Chao ming Can dé din ức

the uién céa ching t6¢ Xin vui long:

NHÀ XUẤT BẢN GIÁO Mi Stone xé sich

s - Không gạch, viết, vẽ lên sách

lt

(

Trang 2

UMA

iin Tu

Trang 3

LỜI NÓI Đầu

ừ phiên bản Microsoft Access đầu tiên phát hành vào năm 1992 đến Microsoft Access 2000, qua năm lần phát hành với trên 120 triệu bản chiếm tỷ trọng doanh số khá lớn nên có thể nói rằng Access là một trong những chương trình cơ sở dữ liệu

phổ biến nhất trên thế giới

Microsoft Access 2000 chẳng những dễ dàng liên kết các thông tin liên quan mà còn có thể làm việc với nhiều nguồn dữ liệu

khác: dBASE, Paradox, SQL trên nhiều loại máy tính: Máy tính văn

phòng (PC), máy chủ (server), máy mini và máy lớn (mainframe) Access đảm nhận hai vai trò: Phần mềm trên máy khách (client) hoặc máy chủ và dễ dàng truy cập các chương trình ứng dụng khác như Microsoft Word, Excel, PowerPoint, Outlook

Microsoft Access 2000 cung cấp hệ thống chương trình ứng dụng rất mạnh, giúp bạn mau chóng và dễ dàng tạo lập các trình ứng dụng của mình bất kể từ nguồn dữ liệu nào thông qua các form, report kết hợp với việc sử dụng một số lệnh Visual Basic

Microsoft Access 2000 là phương tiện để trao đổi thông tin trên mang Internet va Intranet, đặc biệt sử dụng trang truy cập giúp bạn ° nhanh chóng tạo và sử dụng các chương trình ứng dụng trên mạng

Microsoft Access 2000 giúp bạn lưu trữ và quản lý dữ liệu Phối hợp Access với Microsoft SQL Server trên máy văn phòng hoặc máy phục vụ để tạo lập nhiều trình ứng dụng trên Windows được nhanh chóng và ít tốn kém Ngoài ra Microsoft Access 2000 còn cung cấp công cụ để dễ dàng liên kết dữ liệu từ máy tính PC với dữ liệu ở máy tính lớn

Do một số những tính năng nổi bật kể trên nên chúng tôi xin giới thiệu với độc giả quyển “Microsoft Access 2000 lập trình ứng dụng cơ sở dữ liệu” gồm 2 tập, 14 chương kèm theo CD-ROM chứa

bài tập và cơ sở dữ liệu mẫu để độc giá có thể thao tác trực tiếp trên

Trang 4

sao tránh khỏi các thiếu sót, những mong quý độc giả lượng thứ Trong sách có nhiều thuật ngữ mới, những thuật ngữ này, chúng tôi để trong dấu ngoặc hoặc diễn giải ngữ nghĩa để tham khảo ý kiến của độc giả

Các ý kiến đóng góp, xin quý vị độc giả gửi về địa chỉ E-mail của chúng tôi mk.pub@cinet.vnnews.com hoặc Website của nhà sách Minh Khai www.minhkhai.com.vn

Chúng tôi xin chân thành cảm ơn Nhà xuất bản Giáo Dục và những người khác đã góp công sức để đưa quyển sách này đến tay độc giả

Tp Hồ Chí Minh, tháng 10 năm 2000

Trang 5

A) MUC LUC Mac LUC (Tap 1) Lời nói đầu Mục lục

Chương 1: GIGI THIEU VE VBA

TẬP HỢP, ĐỐI TƯỢNG, THUỘC TÍNH, PHƯƠNG PHÁP VÀ SỰ KIỆN - — Tập Hợp và Đối Tugng - — Thuộc Tính và Phương Pháp - — Các Sự Kiện

THỦ TỤC VÀ MODULE

- — Thủ Tục Con - Thủ Tục Hàm - Thủ Tục Thuộc Tính - Module GIAO DIEN VBE - — Cửa Sổ VBE - — Gỡ Bối

- — Trình Duyệt Đối Tượng

JET, CAC KIEU DU LIEU VA KHAI BAO - Jet - Cac Kiéu Dữ Liệu - Khai Bảo

CẤU TRÚC LOGIC DIEU KIEN VA VONG LAP

- lf Then - Select Case - For Next - For Each Nextva With End With - Do Loop

CAC HAM CO SAN

- _ Tổng Kết Các Ham Lựa Chọn

GỠ RỐI VÀ BẤY LỖI

- Cú Pháp Căn Bản Cho Bẫy Lỗi - — Ví Dự Bẫy Lỗi

- — Xử Lý Lỗi MACROS

Trang 6

- Thiết Kế Macros

- So Sánh Giữa VBA Và Macros

Chương +: CÁC MƠ HÌNH TRUY CAP DU LIEU

TỔNG QUÁT VỀ DAO

- —_ Không Gian Làm Việc Jet

- —_ Không Gian Làm Việc ODBCDirect

- Dùng Chung Các Đối Tượng Cho Không Gian Làm Việc Jet Và ODBCDirect

- Các Đối Tượng Của Không Gian Làm Viéc Jet

- Các Đối Tượng Của Không Gian Làm Việc ODBCDirect

TỔNG QUÁT VỀ ADO ˆ

- Thư Viện ADODB - Thư Viện ADOX:

Chương 3: THIẾT KẾ BẰNG CƠ SỞ DỮ LIỆU QUAN HỆ VÀ BẰNG

- — Chuẩn Hóa - _ Mối Quan Hệ Giữa Các Bảng

TẠO BẰNG BẰNG CÁC WIZARD

- — Các Wizard Của Cd Sở Dữ Liệu + Wizard Table - Field Builder

TAO BANG BANG TAY - — Các Kiểu Dữ Liệu - Dữ Liệu Hợp Lệ

- Tạo Chỉ Mục

TẠO VÀ QUẦN LÝ CÁC BẰNG BẰNG CHƯƠNG TRÌNH

- — Tạo Bảng - _ Làm Việc Với Chỉ Mục

- Điền Dữ Liệu Vào Bảng

- Làm Việc Với Dữ Liệu Trong Các Định Dạng Khác

Trang 7

ey MUC LUC

ˆ Query Action

- Các Loại Query Khác

- Cac Thao Tac Định Nghĩa Dữ Liệu Làm Việc Với Nguồn Dữ Liệu Từ Xa

THIẾT KẾ QUERY BẰNG TAY

- — Sử Dụng Wizard - Sử Dụng Khung Nhìn Design CÁC QUERY SELECT ĐẶC BIỆT - Query Parameter - Query Union - Subquery

CAC QUERY ACTION

- Query Update - Query Append - Query Delete - Query Make - Table

LAP TRINH QUERY BANG sa@t VA ADO

- Cau Lénh SELECT - Hàm Định Nghĩa Dữ Liệu - Views va Tht Tuc Lưu Trữ

TRUY VAN NHUNG NGUON DU LIEU TU XA

Truy Vấn Nguồn ODBC Liên Kết

- — Truy Vấn Trong Các Đề An Dữ Liệu Của Access - _ Lập Trình Truy Vấn Cơ Sở Dữ Liệu Từ Xa

Chuong 5: XÂY DỰNG GIAO DIỆN NGƯỜI DÙNG BANG FORM

FORM SPLASH SCREEN

- Tao Splash Screen

- — Điều Khiển Khoảng Thời Gian Hiển Thi FORM SWITCHBOARD

- _ Điều Khién Bang Siêu Liên Kết - Điều Khiển Bằng Chương Trình LIÊN KẾT FORM VỚI DỮ LIỆU

Trang 8

- Form Phụ

TÌM KIẾM VÀ HIỂN THỊ DỮ LIỆU

- Tạo Một Form Tìm Kiếm

- Hiển Thị Thông Tin Một Cách Linh Hoạt - — Vẽ Biểu Đồ Một Tập Con Của Dữ Liệu

THAO TÁC FORM BẰNG VBA

Trang 9

Chuong 1

GIGI THIEU VE VBA

Hơn một thập kỷ trước đây, BI Gates đã để xuất một ngôn ngữ dùng chung cho các ứng dụng văn phòng Microsoft Visual Basis for Application (VBA) la ngén ngt thoa man ude mo dé va con hon thế nữa VBA trong Microsoft Access 2000 là ngôn ngữ thông dụng trong các thành phần của Mierosoft Office, đó là một thành công lớn Cú pháp của nó cũng chặt chè như ngôn ngữ lập trình Visual Basis chuẩn Tính chất phổ biến của VBA khiến cho các nhà phát triển sử dụng nó như ngôn ngữ độc lập rất đễ dàng trong nhiều bối cảnh bằng cách nghiên cứu một mô hình đối tượng mới VBA giống như chất keo cho ứng dụng Access, nó gắn mọi thứ với nhau và cho

ra một form ứng dụng

Access 2000 có thêm một giao dién mdi, Visual Basis Editor

(VBE) là một trình soạn thảo có thể chèn các thành phần khác của Office vào trong dòng Thế nhưng bạn có thể tự mình tìm kiếm và chèn mã lệnh VBA vào đằng sau các form của Aceess quen thuộc thay vì ở sau các form người dùng trong hầu hết các thành phần còn lại của Office Việc kết hợp các kỹ thuật này bạn sẽ cảm thấy rất tự nhiên

Chương này sẽ giới thiệu VBA trong Access 2000 và ôn lại các vấn dé co bản có liên quan đến sự phát triển các ứng dung Access 2000 Nó còn trình bày những đổi mới quan trọng và giải thích những kỹ xảo Code _Behind_ Form, Đây là một chủ để phát triển Access truyền thống, ngoài ra còn có một số đối mới khác để giúp bạn làm việc với VBE

Chương này trình bày bảy đặc điểm của VBA trong Access được liệt kê dưới đây và sẽ kết thúc bằng một cuộc thảo luận ngắn gọn về macro

Trang 10

m Thủ tục và module (don thé) m Giao diện VBE

m đet, các kiểu đữ liệu và khai báo m Cấu trúc logic điều kiện và vòng lặp m Các hàm cài sẵn

m Gỡ rối và bấy lỗi

TẬP HỢP, ĐỐI TƯỢNG, THUỘC TÍNH, PHƯƠNG PHÁP VÀ SỰ KIỆN

Access 2000 hỗ trợ cho VBA, tạo thuận lợi cho phát triển hướng đối tượng Phần sau sẽ giới thiệu sự phát triển hướng đối tugng trong pham vi VBA va Access 2000 "Tài liệu này phục vụ cho những người có năng lực và kinh nghiệm phát triển ứng dụng lập trình và những người phát triển ở mức trung bình muốn xem lại lập trình hướng đối tượng bằng VBA

Tập Hợp Và Đối Tuợng

Access 2000 là môi trường phát triển hướng đối tượng Cửa số Database của nó thuận tiện cho người dùng truy xuất các bảng (table), query (vấn tin), form (mẫu biểu), report (báo cáo), module (đơn thể) và macro VBA có sẵn những đặc trưng này, triển khai mang rộng của cấu trúc lập trình như các đối tượng recordset (tập record) và các đối tượng 7abieDeƒ Để nắm vững VBA trong Access, bạn phải hiểu biết về các đối tượng và một số khái niệm liên quan đến nó

Mỗi đối tượng là một vật thể Những vật thể gồm nhiều loại khác nhau như xe hơi, điện thoại, video Tất cả các đối tượng đều có thuộc tính Ví dụ xe bơi được xác định bằng màu sắc, cửa xe, máy

Trang 11

(] Chương 1: GIỚI THIỆU VE VBA

đối tượng này giúp bạn nhận ra những nét điển hình duy nhất của các đối tượng khác dựa vào các thuộc tính của chúng Ví dụ một chiếc hơi màu đổ và màu đen xác định hai điển hình duy nhất của đối tượng xe

Những thuộc tính của đối tượng khác nhau tùy thuộc vào lớp đối tượng mà chúng đề cập tới Một chiếc xe hơi có tập hợp thuộc tính khác với một cái điện thoại CA hai déu có thuộc tính màu sắc, nhưng máy điện thoại còn có thể có thuộc tính speaker (loa phóng thanh), còn xe hơi lại có kích thước máy móc khác nhau Một vài đối tượng còn chứa các thuộc tính khác nữa Một vài đối tượng là các thùng chứa (container) các đối tượng khác Các đối tượng được chứa này cũng có các thuộc tính Ví dụ trong khi máy móc có kích thước và hình dạng khác nhau thì người gọi điện thoại lại có thuộc tính về âm lượng và giọng nói khác nhau Những thuộc tính lại còn có thể xác định những đặc trưng duy nhất về lớp đối tượng ở bên trong nó Một Speakerphone (điện thoại có gắn micro) có các thuộc tính khác với một điện thoại chuẩn

Để bổ sung cho các thuộc tính, các đối tượng còn có các phương pháp Các phương pháp của đối tượng là những hành vi có thể thực hiện Máy điện thoại để gọi, chiếc xe hơi để di chuyển Nhiều đối tượng có các nhiều phương pháp, ví dụ, máy điện thoại thực hiện các cuộc gọi nội hạt và liên tỉnh

Người phát triển Access không thể thao tác các đối tượng vật lý Chúng ta thao tác bằng chương trình tạo các form, các bảng và các query để có thể miêu tả các đối tượng và các hành vi của chúng Cửa sổ Database Access 2000 trình bày một số lớp đối tượng cơ sở dữ liệu trên thanh công cụ Outlook-style của Microsoft (xem Hình 1_1) Hãy click vào nút Form trên thanh công cụ để mở một khung nhìn (view) của các đối tượng form và hiển thị hai tùy chọn để tạo các form mới Các đối tượng form có thể chứa các đối tượng khác

gọi là điều khién (control) Các đối tượng được chứa bên trong chỉ

Trang 12

— _ — ; enone —

Caer) : aa ee CEG)

Lie Gt pee Peet lh unde top

2t GAP Kye” Ss soe ogee De Pa Set aia [—=11 Tư kệ Nên 1e X8, TE

Thuê evra, [iene] swt Lie

B a] Geaelone bene xen ere) om đ] ae benkyangss se

& CD tse: mhunter

Tea | tees deus B.-:°:iÌm sxxuve ¬ BD ten tess ˆ GB berate 2 TD tre meetin 4 tR setee pm TD bre mts or omaptee || tr - fl } a da ane imei ba Tá up mean team

Hình 1-1: Cửa sổ Database với lập hợp các đối tượng form và hai tùy chọn để tạo mội form mới

Hình 1-1 trình bày một vài đối tượng form Các đối tượng này bao gồm một coilecttion (tập hợp) Những ứng dung Access điển hình có các tập hợp của các form, các bảng, các query và các đối tượng khác Cửa sổ Database tự động sắp xếp các đối tượng được chọn vào trong các lớp khi bạn click vào biểu tượng phía bên trái trên thanh công cụ của từng tập hợp

Các tập hợp cũng giống như các đối tượng Tất cả các tập hợp trong Access đều có thuộc tính Count để xác định số lượng các trường hợp trong tập hợp Tập hợp có thể còn có thudc tinh Item Bạn có thể sử dụng thuộc tính Item chi đọc để trả về một form riêng lẻ từ tập hợp A/i/o6rms Khi những thành phần của tập hợp là những đối tượng riêng lẻ thì chúng không có thuộc tính Count Các đối tượng của một tập hợp phục vụ cho những mục đích khác nhau Ví dụ chiếc xe hơi mui rời có mục đích sử dụng khác với ghế kiệu, nhưng cả hai đều thuộc tập hợp xe trong gia đình

Thuộc Tính Và Phương Phép

Các thuộc tính và phương pháp hiển thị sự thể hiện và hành vì của các đối tượng, cú pháp để tham chiếu đến các thuộc tính và

Trang 13

Chương 1: GIỚI THIEU VE VBA

phương pháp 1a: Object.property hoặc Oð0/ccf.method Thuật ngữ object (đối tượng) có thể tham chiếu đến hoặc là một đối tượng riêng lẻ hoặc một tập hợp của các đối tượng

Vi du 1: txtinput1.backcolor chi định thuộc tính màu nên của hộp văn bản trong một form

Vi du 2: Allforms.Item(0) tham chiéu dén form dau tién trong tập hợp form Nếu form có tên là frmSamplel, ban có thể tham chiếu đến form như sau:

Allforms.Item(“frmSample1”)

Bạn có thể xem các thuộc tính của đối tượng cơ sở dữ liệu bằng cách chọn chúng trong khung nhìn Design rồi Click nút Property trên thanh công cụ Hình 1-2 trình bày một form trong khung nhìn Design cùng với tờ thuộc tính của form đó Tờ thuộc tính này trình bày mục nhập khach hang, My Default Caption trong hộp thuộc tính Caption Thuộc tinh Close Button da duge chon Ban có thể click vào hộp Close Button réi chon No, Thuộc tinh Close Button méi nay làm mất màu xám của nút Close khi có một form xuất hiện trong khung nhìn Form Lưu ý rằng tờ thuộc tính có nhiều trang Hình 1-2 trình bày nhãn Format đã chọn Những trang này tổ chức các thuộc tính thành các nhóm để tìm được nhanh

Pant [tate | tore [ecw | |

tee delete gene ˆ

TẠO ee

tows kà foots

- Tư Click me to view & message fet stn teyeryren re làn Tay tờ = mm hata force " Me

Trang 14

cg GHI CHÚ: Trong Access 2000, tờ thuộc tính có sẵn trong cả 2

khung nhìn Design và Form thay vì chỉ trong khung nhìn Design

Điều này có nghĩa là bạn có thể chỉnh sửa và trau chuốt sự thể

hiện của form một cách nhanh chóng khi làm việc với bản thiết

kế của nó trong khung nhìn Form

Đối tượng DoCmd là nguồn cung cấp phong phú các phương pháp cho tất cả những người phát triển Access ở các cấp, nhưng với những người mới học sử dụng cũng tìm được sự giúp đỡ đặc biệt để bắt đầu với những phương pháp này Đối tượng D2oCmd gồm nhiều phương pháp như: Ciose, Openform, GotoControl, FindRecord và TunCommand Nhiều phương pháp DoCmd đòi hỏi các đối số để chỉ ra cách thực hiện phương pháp Một số phương pháp khác lại yêu cầu các đối số tùy chọn Nếu bạn không cung cấp giá trị cho các đối số tùy chọn này thì phương pháp đó sẽ sử dụng giá trị cài đặt mặc nhiên RunCommend có sức lôi cuốn đặc biệt đối với những người dùng thành thạo muốn nâng cao địa vị lập trình của mình, bạn có thể sử dụng nó để thực thi những lệnh có giá trị trên những menu và thanh công cụ của Access

Bạn có thể đóng một form trong Access bing c4ch ding’ phương pháp Close của đối tượng Doemd Phương pháp này có hai đối số đã yêu cầu và một tùy chọn: Đối số yêu cầu thứ nhất chỉ ra kiểu của đối tượng cần đóng Bạn sử 3:-ng acForm khi cần đóng một form (ơœcForm là một hằng số có sẵn trong Access, giá trị của nó báo cho phương pháp Cỉose biết rằng bạn muốn đóng một form Xin xem mục “Trình duyệt đối tượng” trong phần sau của chương này để biết thêm về những hằng số có sẵn trong Access) Đối số thứ hai là tên form Mục nhập này hiện ra trong thudc tinh Name cia td thuộc tính form, Hãy rào tên trong dấu ngoặc kép Đối số tùy chọn báo cho Access biết để lưu lại những sự thay đổi trên form hay không, nó có hai giá trị như sau:

Trang 15

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

Cài đặt mặc nhiên là nhắc bạn chọn để lưu Sử dụng acSaveYes hoac acSaveNo để đóng form và lưu hoặc không lưu bất kỳ sự thay đổi nào Bạn có thể gọi phương pháp C/ose cho một form bằng cách sử dụng cú pháp sau:

DoCmd.close acform, “formname”, acSaveNo

Có nhiều phương pháp Docmd tác động trực tiếp vào các Object riêng lẻ Ví dụ phương pháp GotoControl ấn định.tiêu điểm vào điều khiển đặc biệt trên form Bạn có thể có cùng kết quả khi sử dụng phương pháp 5eiƒfocus nếu chọn một điều khiển Một trong hai phương pháp trên đều thuận tiện khi ứng dụng của bạn cần chuyển tiêu điểm nhập thông tin mới hay sửa chữa các lỗi

Các Sự Kiện

Các sự kiện là rất quan trọng trong lập trình VBA Bạn có thể sử dụng các sự kiện để tạo các ứng dụng năng động và tương tác Các đối tượng và tập hợp có các sự kiện, nó cung cấp điểm xuất phát cho một mã khách hàng của người phát triển Khi làm việc với các form, bạn có thể sử dụng các sự kiện cho các tác vụ như: phê chuẩn dữ liệu, cho phép hoặc không cho phép các điều khiển, thay đổi điều khiển để có được tiêu điểm, mở hoặc đóng một form

Trang 16

người dùng điều khiển đến một record mới, tạo lại các query hoặc làm mới lại một form

1

- Bạn truy xuất các sự kiện cho các form và các điều khiển của chúng bằng cách chọn form hay điểu khiến trong khung nhìn Design và click nhãn Event trong tờ thuộc tính Click nut Build bén cạnh sự kiện đang mở một hộp thoại, bạn có thể dùng nó mở module chương trình hậu thuẫn cho một form Chọn Code Builder để mở một thủ tục sự kiện trong VBE Thủ tục sự kiện được đặt tên Objectname_Eveniname Trong dé Objectname la tên của đối tượng và Euentname là tên của sự kiện, Ví dụ nếu bạn chọn một form và click vào nút Build cho sự kién Close, thủ tục sự kiện của bạn có tên la Form_Close Néu ban tao thu tuc su kién On Click cia nhãn có tên lbITitle, VBA tu dong dat tén cho né 1A lb/Title_Click

Đoạn chương trình dưới đây là ba thủ tục sự kiện của form

trình bày trong Hình 1-2: Form_open, Form_load va lbITitle_click

Khi lần đầu tiên bạn mở form ở khung nhìn Form, một hộp thông báo xuất hiện đọc được là “The form opened” (form đã mở) Khi bạn click nút OK, bạn thấy thông báo thứ hai là “The form loaded” (fprm đã nạp) Sau khi form thực hiện xong chu kỳ nạp của nó, bạn check vào nhãn trên form, một hộp thông báo thứ ba xuất hiện với nội dung: "Hello from the label."

Private Sub Form_Open(Cancel As Integer)

MsgBox "The form opened.", vbInformation,

“Programming Microsoft Access 2007! End Sub

Private Sub Form_Load()

'Đây là câu lệnh đơn giản

MsgBox “The form loaded.", vbinformation, _

"Programming Microsoft Access 2000" 'Câu lệnh này thiết lập một thuộc tính

Me.Caption = “New Caption"

Trang 17

2M Chuong 1: GIGI THIEU VE VBA

Me.txtMyTextBox.SetFocus

'Khi phương pháp làm việc, VBA thiết lập một thuộc tính

Me.txtMyTextBox.Text = “Hi, there!"

End Sub

Private Sub IbITitle_Click()

MsgBox "Hello from the label.", vblnformation, _

“Programming Microsoft Access 2000" End Sub

Các thủ tục su kiện tạo các hộp thông báo Click vào nhãn dé gọi thủ tục sự kiện /0/7e_Cch Thủ tục này có một câu lệnh đơn dùng để hiện một hộp thông báo (ký hiệu gạch dưới ở cuối câu lệnh là ký hiệu báo cho máy biết câu lệnh còn tiếp ở dòng dưới) Thủ tục sự kiện #orm_Open cũng có một câu lệnh đơn Thủ tục Form _load có một số câu lệnh ngoài ra mỗi câu lệnh có một hộp thông báo của nó Thủ tục sự kiện này tạo đầu để linh hoạt cho form, đó là cách giúp đỡ đặc biệt khi một form có hai hay nhiều chức năng trong cùng một ứng dụng Nó còn thiết lập tiêu điểm tới hộp văn bản có tên là /xtMyTextBox và ấn định “Hi, there” lam thuộc tính Text của điều khiển Thủ tục sự kiện này giải thích hai kỹ thuật khác nhau để thiết lập tiêu điểm Kỹ thuật này đưa vào phương pháp SefFocus, còn kỹ thuật kia sử dụng phương pháp Go7oControl cho cùng một mục dích Dấu nháy đặt ở đầu vài dòng đánh dấu chúng là các câu ghi chú Lưu ý rằng mỗi một kỹ thuật là một dòng ghi chú

THỦ TỤC VÀ MODULE

Trang 18

\ {

những lớp của riêng mình và sử dụng lại đoạn mã cho những tác vụ thường xuyên như: thêm mới một nhân viên, gửi tiền hay rút tiễn ra khỏi tài khoản

Thủ Tục Con

Thủ tục con (Sub Procedure, viết ngắn lại là “subprocedure” hoặc chỉ đơn giản là “procedure” = thủ tục) có thể thực hiện các động tác, tính toán các giá trị, cập nhật và xem xét lại các cài đặt thuộc tính có sắn Như bạn đã biết Access 2000 tự động gọi các thủ tục cho các sự kiện, nhưng bạn cũng có thể sử dụng chúng một cách rộng rãi Thủ tục không bao giờ trả về giá trị, chúng cũng không thể định nghĩa các thuộc tính do người dùng tự tạo cho form, report hoặc các module lớp

Thủ tục chứa hàng loạt các câu lệnh VBA nằm giữa hai lệnh „Sub và EndSub Ở câu lệnh Sub, bạn phải khai báo tên của thủ tục Trong khi các thủ tục sự kiện phải đặt tên đúng kiểu (nhu object- event) thì thủ tục đặt tên theo các quy tắc đặt tên biến chuẩn như sau: Nó phải bắt đầu bằng một ký tự, không thể dài quá 255 ký tự, không được có dấu chấm, khoảng trắng và các từ khóa, tên hàm hoặc tên các toán tử của VBA Thủ tục có thể có các đối số, các đối số này đặt sau tên thủ tục, nếu có nhiều đối số thì bạn phân cách chúng bằng dấu phẩy

Muốn nắm vững về các thủ tục, hãy sử dụng wizard của Command Button, nó chứa các đoạn mã lệnh VBA cho hơn 30 chức

năng Để có được các chức năng này, bạn phải thực hiện một số

thao tác chọn lựa trong các hộp thoại Thông thường thủ tục viết bằng wizard là đơn giản, dù là người phát triển có trình độ trung cấp hay thành thạo đều nên sử dụng Wizard, bởi vì nó tạo ra một sườn thủ tục để bạn có thể thêm những câu lệnh cho các yêu câu cụ thể của bạn Người mới bắt đầu làm việc với Aceess có thể sử dung wizard để di chuyển record, bảo vệ dữ liệu, các thao tác tạo form và báo cáo tổng quát, gọi các ứng dụng khác và các công việc linh tính

Trang 19

@ chuong 1: GIGI THIEU VE VBA

như chạy một query (vấn tin) hoặc quay số điện thoại một cách tự động và nhanh chóng

Ban thực hiện wizard của Command Button từ hộp công cụ (toolbox) trong khung nhìn Form Design Chọn nút Control Wizards rồi drop (thả) vào form Thao tác này để mở hộp thoại trình bày trong Hình 1_3 Bạn có thể chọn nhiều thao tác cho mỗi loại Sau khi đã chọn các hộp thoại cho thao tác bạn muốn, bạn có thể xem đoạn mã trong VBE của Access 2000 Hãy click vào nút Code trên thanh công cụ Form Design để chuyển vào VBE

What acon do pau wart La happen when the Walon ig trese-?

Different acter ace evutatle for each category Caloqoies: ARES

Kecerd Cer sunns Fn kecad

Fath Ogun Mie Gatored Recad

Weoat Cperatore GatoLast Record

ppc aban Goto Kext Record

9c bai #0 (322 to Previn gs Record

Hình 1-3: Sử dụng wizard cla Command Button ban cé thé tao toan bộ các thủ tục sự kiện bằng cách trả lời cau hdi trong hộp thoại,

Rất nhiều người phát triển ứng dụng thích tự mình viết các thủ tục Bạn có thể mở cửa sổ mã lệnh cho một thủ tục sự kiện như đã miêu tả ở trên, hoặc bạn có thể tạo một thủ tục theo cách thông thường Có hai cách để khởi động thủ tục tùy thuộc vào bạn đặt nó ỡ đâu Nếu thủ tục đặt đằng sau form hay report, click vào nút Code trên thanh công cụ Design Nếu đoạn mã đã có trong một module ›„ chuẩn không nằm sau form hay report nao thi ban chọn lệnh Tool- Macro-Visual Basic Editor hoặc nhấn tổ hợp phím ALT+F11 Trong trường hợp khác bạn kết thúc VBE Hay chon Insert - Procedure và

Trang 20

W \ J

4

trong hép thoai Add Procedure gé tén thi tục và xác nhận chọn nút tùy chọn Sub Thao tác này tạo ra một bộ khung cho thủ tục với hai câu lệnh Sub và End Sub Sau đó bạn có thể thêm các câu lệnh khác vào

Vận dụng các kiến thức của bạn về mô hình đối tượng Access để mã hóa một số công việc Hãy gọi đối tượng DoCmd để có nhiều phương pháp Gõ DoCmd và nhấn phím dấu chấm Thao tác này mở ra một hộp danh sách thả xuống để hiển thị toàn bộ các mục nhập hợp lệ sau đối tượng DocCmdd (Xem Hình 1-4) Khi bạn gõ vào một mục, Âccess sẽ quy tụ những mục có đầu mục khớp với mục của bạn

is Gio Edt Yow Insert Qebug Bun Tods Addins Vindow Help

=l#] |

S 4 - “RAO poe REPS 3

= 2 „ñ

[icenesay =] Paytormopenar Public Sub NyFormOpener () Dotind Opentt tna Sub © DUTT ® Openwodulg ~Í# af } & OpenGuery mee OpenReport © OpenStoreuProcedure > OpenTable ‘9 Openview

Hình 1-4: Sự giúp đỡ thông minh giúp hoàn thành câu lệnh VBA cho đối tượng DoCmd Bạn gõ phần đầu của câu lệnh, nó hiển thị danh sách các mục thích hợp tương ứng với phần đầu của câu lệnh

Nếu bạn không nhớ chắc chắn hãy cuốn từ đầu đến cuối các mục để tìm một phương pháp Kỹ thuật này thực hiện cho tất cả các đối tượng không riêng gì DoCmd Microsoft gọi kỹ thuật này là lntelli5Sense (giác quan thông minh) bởi vì nó có khả năng cung cấp một tập con (subset) các phương pháp thích hợp IntelliSense thực hiện 2 công việc: Liệt kê các thuộc tính và phương pháp thích hợp tại bất kỳ điểm nào trong cấu trúc của một câu lệnh của VBA và cung cấp thông tin cú pháp về nội dung các field cân có các câu lệnh VBA đã chọn Cung cấp cú pháp cho câu lệnh VBA Điều này

Trang 21

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

làm giảm các lỗi trong khi viết lệnh và giúp bạn khởi động một cách nhanh chóng

Thủ tục dưới đây có 3 dòng lệnh: Dòng lệnh thứ nhất cung cấp vị trí bộ nhớ cho kết quả tính toán Dòng lệnh thứ 2 cộng thêm hai hằng số Dòng lệnh thứ 3 in kết quả ra cửa số Immediate Cửa sổ này giống một vùng làm việc lưu kết quả trung gian khi bạn kiểm tra chương trình Bạn có thể mở nó từ VBE bằng cách chọn View-Immediate Window Bạn có thể chạy thủ tục từ VBE bằng cách click vào bất kỳ thủ tục nào rồi click vào nút Run Sub/UesrForm trên thanh công cụ Standard Sub MyFirstCa!culator() Dim Result Result z 1+2 Debug.Print Result End Sub

Trong một số tình huống đặc trưng khác, bạn có thể gọi thủ tục bằng một trong hai cáchzĐưa tên thủ tục vào một dòng, nếu thủ tục có đối số, bạn có thể đưa các đối số vào sau tên thủ tục và cách nhau bằng dấu phẩy Đưa lệnh Cai! ở đằng trước tên thủ tục, đây là từ khóa của VBA để gọi một thủ tục Khi bạn ding cau lénh Call, bạn phải đặt các đối số trong dấu ngoặc đơn ở sau tên thủ tục

Đoạn chương trình dưới đây là một phiên bản linh hoạt hơn của hàm tính toán khởi đầu Việc tính toán có hai thủ tục Một thủ tục được đặt tên là ÄySecondCalculaior có nhiệm vụ cộng hai số bất kỳ và in kết quả ra cửa số Immediate Nó xác định hai sé nào được cộng vào từ đối số mà nó nhận Một thủ tục khác dùng để gọi thủ tục trên Bạn có thể thay đổi các số cộng vào thủ tục thứ hai bằng cách thay đổi giá trị của hai đối số trong thủ tục thứ nhất Trong ứng dụng phức tạp hơn, bạn phải gắn các giá trị của đối số này cho các biến hoặc các ñeld của form :

Sub CallSeconCalculator ()

~~ “"MySecondCalculator 1, 3

End Sub

Trang 22

Sub MySecondCalculator ( First, Second) Dim Result Result = First + Second Debug.Print Result End Sub

Thủ Tục Hàm

Các thủ tục hàm thường được gọi là hàm, hàm khác thủ tục ở 2 điểm: Chúng có thể trả về một giá trị nên bạn có thể sử dụng trong các biểu thức như một biến Chúng không làm việc như các thủ tục sự kiện Cả 2 loại thủ tục và hàm đều có thể thực hiện các tác vụ Lưu ý có một ngoại lệ là hàm và thủ tục có thể hoán chuyển cho nhau

Một hàm là tập hợp các câu lệnh VBA, bắt đầu bằng câu lệnh Function va két thic bing End Function N6 cũng có thể chấp nhận các đối số như thủ tục Một hàm có thể có một hay nhiều biểu thức, ít nhất một trong những biểu thức này có thể cài đặt tên hàm bằng một giá trị: Bạn có thể ngưng thực hiện một hàm bằng cách dùng câu lénh Exit Functon Trong một hàm có thể có một hay nhiều c4u lénh Exit Function

Mặc dù hàm trả về một giá trị Nhưng cũng không phải nhất

thiết như vậy Một hàm có thể là một tập hợp các câu lệnh gọi các phương pháp và cài đặt: các thuộc tính ngay cả khi không được cài đặt tên hàm bằng một giá trị Đây là một điểm mà hàm và thủ tục giống nhau

Bạn có thể khởi động một hàm giống như khởi động một thủ tục, nhưng bạn chọn nút tùy chọn Function thay vì nút tùy chọn Sub trong hộp thoại Add Procedure Bạn có thể gọi một hàm bằng cách click nút Run Sub/UserForm trên thanh công cu Standard cia VBE Bạn cũng có thể gọi hàm ngay trong cửa sổ Immediate bằng cách gõ dấu chấm hỏi sau đó gõ tên hàm Nếu hàm có đối số bạn đặt nó trong dấu ngoặc đơn và phân cách các đối số bằng dấu phẩy

Trang 23

Chuong 1: GIGI THIEU VE VBA

Bạn có thể chạy các hàm khách hàng của riêng mình cũng như các hàm có sẵn trong Access ngay trong cửa sé Immediate

Hình 1-5 trinh bay một khung nhìn của VBE với một hàm đơn giản xác định một ngày làm đối số cho thiên niên kỷ thứ ba Để phù hợp với thông lệ chung, chúng ta quy ước, thiên niên kỷ thứ

ba khởi đầu vào năm 2000 thay cho năm 2001 Hàm Year2kTest

chấp nhận một ngày và trả về kết quả là 3 nếu ngày đó nằm trong thiên niên ký thứ ba hoặc trả về 0 nếu ở thiên niên kỷ khác Cửa sổ Iramediate ở dưới cửa sổ mã lệnh trình bày kết quả sau khi chạy hàm cho hai ngày khác nhau Cửa sổ Immediate trong hình 1_5 xác nhận kết quả này trả về là 3 cho ngày đầu tiên của năm 2000 và số 0 cho ngày đầu tiên của năm 1999 Lưu ý rằng bạn phải rào một ngày vào giữa hai dấu # TxÌ

pan ei on ie drm nya, ices, ts [tcencraiy a] [reeraktest zd = Public Function Yenc2kTest (dtmDateIn) À3 Byte 3 + Yaax2kTeac for ded milleruiwe dates ¬ Year2KTcst * 0 1£ drm0ateIn > ÿ12/21/1999W Then Yeac2KTest » 3 End If End Function _ =f <1) fz PYear2KTest (#1/ 1/20008) ˆ 3 ?Yenr2KTest (1/1/1999) 0 x Lt ’

Hinh 1-5: Mét ham don gidn duge goi từ của sé Immediate

Thủ tục dưới đây đạt mức độ tỉnh vi hơn trong việc xác định thiên niên kỷ Hàm khởi đầu bằng việc khai báo phạm vi các ngày chính xác Sau đó kiểm tra đối số của nó dựa vào hai cột mốc thiên niên kỷ Nếu ngày không thuộc thiên niên kỷ thứ nhất hoặc thứ hai, hàm cho rằng ngày đó thuộc thiên niên kỷ thứ ba Lệnh trong hộp thông báo ban đầu chỉ ra phạm vi các ngày cho hàm là chính xác

Trang 24

Public Function PopularMiilennium(dtmDateln) As Byte MsgBox "This works for dates after 12/31/0099" & _ " and before 1/1/3000.", _ vbInformation, - “Programming Microsoft Access 2000" If dtmDateln <= #12/31/999# Then PopularMillennium = 1 Elself dtmDatein <= #12/31/1999# Then PopularMillennium = 2 Else PopularMillennium = 3 End If End Function

Các ngày hợp lệ của Access tit 1/1 / 100 dén 12 / 31 / 2999 Pham vi nay đủ cho phần lớn các ứng dụng tại bàn Nếu bạn cần một phạm vi vượt quá các ngày này, bạn phải xét đến việc giải mã các ngày độc lập với hệ thống ngày của Access

gg GHI CHU: Access 2000 thích hợp với năm 2000 Giống như các phiên bản trước, Access 2000 lưu trữ ngày có 4 chữ số cho năm

Access 2000 còn có thể xử lý các năm nhuận Năm nhuận là năm

chia hết cho.4 và chia hết cho 100 hoặcchia hết cho 400.`Năm

2000 chia hết cho 400 nên là năm nhuận Quy tắc này là tới hạn để tính toán trên 2 dạng ngày khác nhau Các dạng General Date và Short Date trong Access dùng các tùy chọn dạng ngày ngắn

của hệ điều hành để chỉ ra dạng hiển thị đúng Nếu bạn thiết lập

mục Regional trong Control Panel để hiện ngày với 4 chữ số cho

năm thì tất cả các dạng ngày Generat sẽ thể hiện đủ 4 chữ số Quy tắc trên không bắt buộc bạn phải lập chương trình trong trường hợp sự cố Y2K không thể xảy ra Vì thế, một vài trình ứng dụng Access có thể có lỗi Y2K dù là Access 2000 ra đời vào năm 2000 Hãy ghé thăm ww.microsoft.com/technet/ topics/year2k/- default.htm để xem tổng quát để tài này cùng với sản phẩm đặc trưng và xem lại bản giải quyết về Y2K FMs site (www.fmsine.com /tpapers/index.html#Year 2000 Papers) có một triển vọng khác trên

Trang 25

đổ Chương 1: GIỚI THIỆU VỀ VIA

một vài vấn để Y2K/Access Một sản phẩm của các thị trường PFMS (Flexible Manufacturing System = hệ thống chế tạo linh hoạt) gọi là Total Access Inspector 2000 vấn dé Y2K trong các ứng dung Access

Bạn có thể thường xuyên sử dụng cả 2 loại thủ tục và hàm để giải quyết một vần đề Hình 1-6 là form dựa vào cả hai loại hàm để trình bày những phép tính toán giữa 2 số Trong form này cho phép người dùng nhập vào hai số trong các hộp văn bản có nhãn là

Number1 và Number2 Click vào một trong các nút chức năng +, -,

/,* để tính toán rồi cho ra kết quả trong hộp Result

eT các cnhonsenedui ăn Binbs o-nltntAhenGioiifaoddhi.bin0hiỂNianirai

Sharkey 1 tas bor 2 Em

LE

+ L

Hình 1-6: Form nay dung để tỉnh toán đơn giản Các hàm của VBA cho phép sử dụng các nút của form và cư trú hộp văn bẳn Fiesuil can cứ vào các mục nhập trong hai hộp văn bản khác

Đoạn chương trình VBA thực hiện form trong Hình 1-6 sử dung 4 cap thủ tục trình bày dưới đây Bốn thủ tục hoạt động do bộ _ phận diều khiển khi click vào bốn nút chức năng (+, -, ”, /) trên form Bộ phận điều khiển này chỉ đơn giản là gọi một hàm, lấy ra các giá trị từ hai hộp văn bản, thực thi việc tính toán được chỉ định

bởi các nút chức năng và trả về giá trị cho các thủ tục sự kiện Đến

lượt thủ tục sự kiện lại trả giá trị từ hàm vào hộp văn bản thứ ba của form Lưu ý rằng sử dụng tiền Äe ở đằng trước các tên hộp văn bản là không bắt buộc Vì mã lệnh ở sau form cùng với hộp văn bản nên việc chỉ định tên form cũng không bắt buộc Các thủ tục sự kiện dùng tiên tố Ae thay thế cho tên lớp dài hơn, chính quy hon

của form (Form_frmCalculator1) xe

Option Compare Database , Wey vis

Option Explicit ` "na ¬

Trang 26

Dim dblResult As Double Private Sub cmdAddition_Click()

Me.txtResult = MyAdder : End Sub

Private Function MyAdder()

dblResult = CDbI(txtNumber1) + CDPbtNumber2) MyAdder = dblResult End Function Private Sub cmdSubtraction_Click() Me.txtResult = MySubtractor End Sub

Private Function MySubtractor()

dblResult = CDbl(txtNumber1) - CDbi(txINumber2) MySubtractor = dblResult End Function Private Sub cmdMultiplication_Click() Me.txtResult = MyMultiplier End Sub

Private Function MyMultiplier()

dbiResult = CDbI(txtNumber1) * CDbI(txtNumber2)

MyMultiplier = dblResult ˆ End Function

Private Sub cmdDivision_Click() Me ixtResult = MyDivider End Sub

Private Function MyDivider(;

dblIResult = CDbl(txtNumbe 1) / CDbl(txtNumber2) MyDivider = db!Result

End Function *

Hàm `šä: cá 2# tục thường trú trong module mã hoá chịu

Trang 27

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

biến để sử dụng chung cho tất cả các thủ tục trong module Vì người dùng chỉ có thể click mỗi lần một phím chức năng nên thao tác này dùng để chia sẻ kết quả của lénh dblResult Cau lénh Option Explicit bắt buộc phải sử dụng để khai báo biến trước khi sử dụng nó Điều này giúp ta tránh được những lỗi phổ biến trong chương

trinh Option Compare Database 1a mét mifc module (module-level)

chỉ định rằng các biến chuỗi xác định, được sắp xếp theo thứ tự chỉ ra bởi vị trí ID trong Control Panel

Cặp của các thủ tục dưới đây minh hoạ rõ về thủ tục, hàm và phương pháp Form frmCalculator2 cé 2 điều khiển, một hộp văn bản có tên fxfÏnput và một nút lệnh có tên là CmdSquarer Form này sẽ tính bình phương của số nhập vào hộp văn bản khi người dùng click nút lệnh CmdSquarer Thủ tục sẽ hiện kết quả trong hộp thông báo

Option Compare Database Option Explicit

Dim dblResult As Doubie

Private Sub cmdSquarer_Click()

MySquarer Form_frmCalculator2.txtinput End Sub

Public Sub MySquarer(MyOtherNumber As Double)

` đblResult= MyOtherNumber * MyOtherNumber MsgBox dbIResullt, vbinformation, _

“Programming Microsoft Access 2000° '._ DoCmd.GoToControl "txtlnput”

' txtinput.SetFocus

' DoCmd.Close acForm, "ftmnCalculator2", acSaveNo End Sub

Thủ tục sự kiện emdSquarer_Click goi thi tue MySquarer va duyệt qua nội dung của txtInput nhu mot đối số MySquarer tính và thể hiện kết quả trong hộp thông báo

Trang 28

Các dòng chú thích để nghị một số thao tác để bạn có thể thực hiện: Một dòng gọi phương pháp GofoControl để chuyển tiêu điểm từ nút lệnh đến hộp văn bản MAu SetFocus 6 ‘dong sau minh hoạ một phương pháp có sẵn để đạt được cùng kết quả Phương pháp Ciose chỉ ra cách thức đóng một form Lưu ý rằng dòng này sử dụng một tên khác, #zmmCoaiculator2 để chỉ tới form cần đóng Việc sử dụng hằng số aeSaueNo rất quan trọng bởi vì nó cho phép form dóng mà không cần phải hỏi có lưu lại các thay đổi hay không

Thủ Tục Thuộc Tính

Bạn sử dụng các thủ tục thuộc tính (property procedures) để định nghĩa các thuộc tính khách hàng cho form, report và module lớp Chúng ta sẽ bàn về các module lớp ở phần dưới và sẽ xem ví dụ về thủ tục thuộc tính trong Chương 7

Có ba loại lệnh thuộc tính: Property Get, Property Let và Property Set Ban c6 thé sit dung nhimg cau lénh này để thêm các thuộc tính đặc biệt vào Form Cau lénh Property Get va End Property c6 thé tra vé mét gid tri giống như thủ tục hàm Nếu ban định nghĩa một thuộc tính chỉ với câu lénh Property Get thì thuộc tính đó là loại thuộc tính chỉ đọc Thuộc tính chỉ đọc thích hợp khi bạn chỉ có quyển xem một số nhưng không được phép chỉnh sửa nó

Với một số thuộc tính quan trọng bạn có thể chỉnh sửa giá trị nhưng không đọc được giá trị Ví dụ người quản trị cơ sở đữ liệu không cần thiết đọc mật mã của người dùng mà họ quản lý Người quản trị chỉ có thể sửa đổi khi người dùng quên mật mã của họ Sử dụng câu lệnh Property- Let cùng với câu lệnh End Property để tạo

một mật mã

Câu lệnh P/operty Set lam việc giống như Property Let Ca hai có thể tạo một thuộc tính Câu lệnh Property.Let thiết lập thuộc tính là một kiểu dữ liệu chẳng hạn là một chuỗi hoặc một, số

nguyên Câu lệnh Properfy Set thiết lập thuộc tính là một đối

Trang 29

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

Vì nhiều thuộc tính có cả hai chức năng đọc và ghi, bạn sẽ thường sử dụng cho cặp Property Get và hoặc là Property Let hoặc là Property Set Trong trường hợp này cặp lénh Property phải có cùng tên để chúng tham chiếu đến cùng thuộc tính

Module

Mét module (don thể) là một thùng chứa các thủ tục và các khai bdo nhu Option Explicit va Dim Có hai loại module co ban Thứ nhất, là các module chudn Day 14 danh sách Module trong cửa sổ Database Các thủ tục trong một rnodule chuẩn độc lập với các đối tượng có sẵn trong một file cơ sở dữ liệu Access Điều này có nghĩa là nó không tham chiếu đến Me hoặc các tên điều khiển không làm tiển tố thích hợp cho các điểu khiến Tuy nhiên, các trình ứng dụng của bạn có thể tham chiếu các thủ tục trong module chuẩn dễ dàng từ bất kỳ đối tượng nào khác

Loại thứ hai của module là một module lớp Có ba trạng thái khác nhau cơ bản của loại này: Các module lớp của form, các module lớp của report và các module lớp của khách hàng Các thủ tục trong một module dễ bị ảnh hưởng chung với các module khác Bạn có thể đưa một thủ tục ra khỏi phạm vi chung bằng cách sử dụng từ khóa Private khi ban định rõ thủ tục lúc ban đầu Xem Hình 1-7 về cú pháp của mẫu này) Bạn cũng có thể khai báo thủ tục rõ ràng cho phạm vi toàn cục bằng cách dùng từ khóa Public

Một module của form là module cho bất kỳ form nào có ít nhất một khai báo hay một thủ tục Việc tạo một thủ tục sự kiện cho một form hoặc một điều khiển trên form là tạo một module lớp của form đó Các module lớp của report làm việc giống như các module lớp của form, nhưng các sự kiện fepor¿ thì khác so với các form và bạn không thể trộn cùng các điểu khiển vào một report như đã làm với một form Bạn có thể tạo các module lớp khách hàng bao gồm các hàm phương pháp và các hàm thủ tục cho một khái niệm giống như khái niệm về người nhân viên hoặc người kế toán Bạn có thể tham chiếu các phương pháp và các thuộc tính cho

21

Trang 30

_các module lớp khách hàng như bạn đã làm để xây dựng các lớp của Access

Bạn dùng các module lớp khách hàng như người cắt bánh ngọt để tạo các trường hợp mới của lớp Access đưa ra hai cách để thực hiện điều này Thứ nhất, bạn có thể dùng câu lệnh Dưm đơn lễ để khai báo cho class va tao mét trường hợp mới của nó Cú pháp của loại câu lệnh này là:

Dim objinstance As New objClass

Giải pháp thứ hai dựa trên một cặp lệnh Thành phân thứ nhất của cặp lệnh là khai báo trường hợp của đối tượng Thành

phần thứ hai thiết lập một tham chiếu đến đối tượng Cú pháp của

các câu lệnh của này là: , Dim objinstance as objClass

Set objlnstance = New objClass

ˆ Tên objClass tham chiếu đến một module lớp cùng với các thủ tục thuộc tính và các hàm phương pháp chung Những hàm phương pháp này thực hiện như các phương pháp của lớp giống như các thủ tục thuộc tính phục vụ cho việc định nghĩa các thuộc tính Chương 7 sẽ trình bày cách tạo và sử dụng các module lớp của khách hàng

GIAO DIỆN VBE

Có lẽ sự thay đổi đáng chú ý nhất trong môi trường phát

"triển Access là giao điện VBE mới Giao diện này đưa Access 2000 gần gũi hơn với Microsoft Word, Excel và PowerPoint xuất phát từ viễn cảnh giao điện phát triển Phần này sẽ xem xét kỹ cách dùng và cách trình bày (layout), các cửa sổ, trình bày cách sử dụng chúng để gỡ rối Ngoài ra còn xem a dại cách h dùng Object Browser (Trinh

Trang 31

@ chuong 1: GIỚI THIỆU VỀ VBA

Ctta Sổ VBE

Access 2000 dé nghị ít nhất ba cách dẫn tới các module không có form hoặc report ở sau Đầu tiên là cách quen thuộc nhất bạn

thường thấy trong các thành phần khác của Office, từ cửa sổ

Database chon lénh Tools-Macro-Visual Basic Editor Mét shorcut (lệnh cắt) thuận tiện cho cách này là bấm tổ hợp phím Alt+F11

Cách này đưa bạn trực tiếp đến VBE Bạn có thể sử dụng Alt+F11

để quay trở lại hay chuyển tới giữa các cửa sổ Database và VBE Cách thứ 2, nếu bạn có sẵn một module chuẩn, hãy click vào nút Module trong cửa sổ Database rồi double-click vao module chudn nào bạn muốn xem Cửa sổ VBE xuất hiện chứa nội dung của Module đó Cách thứ ba, nếu bạn muốn tạo một module chudn mdi, hay click nuit Module trong cửa sổ Database rồi click nit New trên

thanh công cụ để mở một module trống trong VBE

ge GHI CHÚ: Nhóm phát triển Office đang làm việc để đưa ra cách thứ tư cho VBE, đó là cách quen thuộc đối với những người phát triển Access Bạn có thể click vào nút Code trong cửa sổ Database với module chuẩn form hoặc report đã chọn Nút Code sẽ mở cửa sổ VBE với module tương ứng

Để mớ module hậu thuẫn cho một form hay report, đầu tiên bạn phải mở đối tượng trong khung nhìn Design Bạn có thể click nút Code trên thanh công cụ Design Thao tác này mở module và

đặt vị trí hiển thị vào đỉnh của module Bạn có thể đi chuyển thẳng đến thủ tục sự kiện của một đối tượng trên form.hay report bằng

cách click vào nút Build bên cạnh sự kiện trong tờ thuộc tính Nếu không có thủ tục sự kiện nào, bạn hãy click vào nút Build và chọn Code Builder, một màn hình thủ tục trắng sẽ xuất biện cho đối

tượng đó ; :

Khi bạn di chuyển đến VBE, bạn có khả năng mở các cửa số Project và Properties Đây là cách thuận lợi để mở và kiểm tra các

module khác trong một trình ứng dụng Cửa số Project hiển thị các

module khéng hau thuẫn form hay report trong folder Modules Cac 23

Trang 32

module hau thudn các form va report xuất hiện trong folder Misrosoft Access Class Objects Ban cé thé chon mét folder thích hợp với một form hoặc một report để xem và thiết lập các đối tượng thích hợp với lớp Để mở cửa sổ Project hoặc Properties, chọn lệnh thích hợp từ menu View hoặc sử dụng bàn phím và thanh công cụ

shortcuts " : ,

ce GHI CHÚ: Thứ tự trong cửa sổ Properties để trình bày các đối tượng cho một đối tượng lớp của Access, đối tượng đó phải được

mở trong khung nhìn Design Hãy Double-click một module hoặc

một class trong cửa sổ Project để hiển thị các chỉ dẫn và các

khai báo thích hợp trong cửa sổ Code tương ứng, lưu ý rằng các

đối tượng chỉ xuất hiện nếu đối tượng lớp cũng được mở trong

khung nhìn Design

Trang 33

a Chương 1: GIG! THIEU VE VBA

Double-click vao bat ky déi tugng Module hoặc lớp Access nào khác trong cửa số Project dé mở cửa số Code thích hợp Từ đó bạn có thể kiếm tra, chỉnh sửa, hoặc sao chép đoạn chương trình Cửa sổ Code có cách trình bày quen thuộc với các hộp danh sách thả xuống của Object và Procedure ở trên đỉnh Bạn có thể dùng những hộp này để di chuyển xung quanh một module lớn hoặc mở các thủ tục mới trong thủ tục đã có sẵn Cửa sổ Properties trình bày các thuộc tính cho module hoặc lớp Access hiện hành đã chọn Bạn có thể chỉnh sửa các thuộc tính đối tượng trong cửa số này, nó thường thích hợp và linh boạt hơn để chỉnh sửa các thuộc tính đối tượng cho một form hoặc một report trong khung nhìn Design

Gỡ Rối

Bạn có thể dùng cửa sổ Code để gỡ rối và xem xét đoạn chương trình của bạn Bạn có thể thêm hoặc di chuyển một điểm ngắt trên một câu lệnh bằng cách click vào lễ bên trái của câu lệnh VBE đánh dấu điểm dừng với chấm nhỏ xung quanh theo thói quen ở lễ trái Hình 1-8 trình bày chương trình gỡ rối được dừng trên câu lệnh thứ hai của dòng thứ tư trong một thủ tục; mũi tên bên lễ trái chỉ đồng dưới của đoạn chương trình sẽ được thi hành

lam =} =

BR

Private Sub form | Long} 3

Thais az a C1 yEC ctAY

Msgbox "The tore loaded : volnformation, „„

“Programming Kicrosote access 2000" THỊ đế A post

e maa Caption “New Caption”

hive WtRed, VEA feta a bicperey

He, txthyTextBos Text " “Hi, there!*°

End Sub *

zJš 4 † Ls

Trang 34

Bạn chọn lệnh Continue trong menu Run để bất đầu thực hiện đoạn chương trình sau điểm dừng Hình 1-9 trình bày kết quả sau khi thực hiện phần còn lại của chương trình trong thủ tục Form_frmSample1 Luu y ring ddu đề của form đọc là “New Caption” Hộp van ban doc dugc la “Hi, there!”

Bạn có thể dùng mũi tên để nhảy qua một hay nhiều dòng của chương trình Ví dụ, Hình 1-10 là kết quả của việc bạn drag mũi tên đến dòng thực biện phương pháp Se(Foceus và chọn lệnh Continue từ menu Run Thủ tục này nhảy qua câu lệnh gán “New ị Caption” thành thuộc tính Caption cia form, vi thé form nay giống | như form trong Hình 1-9, nhưng tiêu để của nó là “My Default

Caption”

Trang 35

@ chugng 1: GIỚI THIỆU VỀ VBA

Microsoft Vaual Hasic ị

Run-time error *2185:

You cant reference a property or method for a control unless the

control has the focus,

| | |

{

Hình †1-11 Kết quả của việc nhảy đến dòng cuối cùng trong Hình 1-8 và tiếp tục thực hiện

Nhiều chức năng của cửa số Debug trong Microsoft Access 97 cũng được sử dựng trong Access 2000 Cửa số Debug trong Access 97 có trang Watch và trang Local Mỗi trang có một màn hình chẻ trong cửa số Immediate có giá trị như một phần của trang Trong Access 2000, các cửa sổ Watch, Local và Immediate là những cửa sổ riêng biệt Bạn có thể mở các cửa sổ này trong VBE bằng cách dùng Menu View Bạn có thể drag (kéo), drop (thả) và định lại kích thước các cửa sổ này dọc theo các cửa sổ Code, Project và Properties Chọn lệnh Tool-Option và dùng trang Docking để chỉ định cửa số nào cần chặt ngắn

Bạn có thể dùng cửa số Watch để theo dõi giá trị của biểu

thức, các biến và các đối tượng khi thực hiện chương trình Sau khi

mở cửa sổ Watch, bạn có thể thêm các biến để quan sát bằng cách

chọn lệnh Debug-Add Watch Chọn biến cần theo đõi trước khi thực hiện câu lệnh Khi hộp thoại Add Watch mở, chọn một kiểu của Watch rồi click nút OK để đóng hộp thoại này Giá trị của biến được trình bày trong cửa sổ Watch khi câu lệnh được thực hiện Nếu bạn chạy chương trình theo từng bước, bạn có thể kiểm tra giá trị của các biến sau mỗi bước

Hình 1- 12 _ trình bay | giá trị thuộc tính Caption của

#mSample1 ngay sau khi đòng lệnh thay đổi giá trị từ “My Default

Trang 36

bày giá trị của txtMyTextBox là Nul vì câu lệnh gán chưa được thực hiện

Hình 1-12 Cửa sổ Watch trình bày trạng thái của biểu thức như một

thủ tục sự kiện được thực hiện

Cửa số Local thể hiện tất cả các biến trong khi chương trình được thực hiện ở chế độ ngắt (break mode) Khi bạn ngưng thực hiện chương trình tại điểm ngắt, cửa sổ Local chứa một đối tượng 3e Bạn có thể mở rộng liên tiếp đối tượng Me và các thành phần để tìm các giá trị của tất cả các thuộc tính và các biến, Điều này có thể giúp ích cho bạn nếu bạn có yêu cầu chỉ tiết về mọi mặt giúp bạn hiểu rõ chương trình được thực hiện như thế nào

Cửa sổ Immediate có thể là công cụ thích hợp nhất để phát triển chương trình và bẫy lỗi Từ cửa sổ này bạn có thể chạy bất kỳ hàm hay chương trình con nào Bạn cũng có thể đánh giá các biểu thức và các cách khác nhau để viết hàm Trước khi các biểu thức Watch có hiệu lực, cửa sổ Immediate có một chỗ thuận tiện để in các kết quả trung gian trong chế độ ngắt và nó vẫn có thể đáp ứng các chức năng liên quan trong hoàn cảnh đặc biệt

Trang 37

Chuong 1: GIGI THIEU VE VBA

quả là 3 trong cửa sổ này Vấn để này cũng đúng đối với thủ tục CallSecondCalculator Trong trường hợp này, kết quả là 4 Mẫu cuối cùng trong ví dụ là cách giải thích để đưa các đối số cho hàm MySecondCaleculator - ban phải gõ đúng tên, chừa một khoảng trống, và phân cách các tham số bằng dấu phẩy Mẫu này là tới hạn bởi vì nó trình bày cách sử dụng các tham số đã truyền cho thủ tục hoặc hàm để tính một giá trị trả về

2§Micteseft Vitual Ea - ChapLel [deakj ^-x 2s

HỘ Ki V@w set Gebug Bun Joos Addins window Help %3: COM «ly ns eK MSW? SE ee oT)) + JGenaae |] [MyFeetCeikcuator v 1 Sub HyFtcstCaiculatoc (} Dim Result Result = t+ 2

Debug.Print Result End Sub Sub CaliSecondCalculator (} MySecondCalculater 1, 3 End Sub a Sub NySecondCelculater (First, Second) Dam Result

Result © Firec + Second ‡

Debug Print Result 4 MyFarstCalcuietor 3 CnilSecondCaiculator ‘ HySecondtalculator 2,3 5 ?bace 09/11/1998

lại +

Hình 1-13 Cửa sổ Immediale trình bày cách chạy các thủ tục và các hàm có sẵn

Bạn cũng có thể sử dụng cửa số Immediate để chạy các hàm có sẵn hay các hàm khách hàng Với một hàm, bạn phải chỉ ra lệnh in để trả về kết quả của hàm Bạn có thể sử dụng từ khóa Prim hoặc dấu chấm hỏi “?” theo sau là tên hàm va ký hiệu trả về đầu dòng Mẫu cuối cùng trong cửa sổ Immediate chỉ ra cách gọi hàm Date có sẵn

Trang 38

Trình Duyệt Đối Tượng

Trình duyệt đối tượng (Object Browser) trình bày trong Hinh 1-14 là công cụ mạnh để nghiên cứu về các mô hình đối tượng Nó đặc biệt quan trọng đối với những người phát triển Aeccess 2000, bởi vì nó có nhiều mô hình đối tượng mới Ví dụ Access 2000 giới thiệu một ngôn ngữ phát triển truy xuất dữ liệu mới: ActiveX Data Object (ADO), với ngôn ngữ này thì Data Access Object (DAO) trở thành lỗi thời Tối thiểu có ba kiểu đối tượng làm cơ sở bổ sung cho Access 2000 về ADO lApons ~] os =| 9|

| =] as

Classes Members of Recordset a ParameterAttibutesEnum a] Ø toveComplete i a ParameterDirectionEnum © MoveFirst 3% Parameters © MoveLast a PersistFormatEnum % MoveNext a PositionEnum ‘> MovePrevious 0% Properties ® NextReconcet 3% Property > Open a PropertyAttibutesEnum PageCount | <2 EEE PageSize x RecordStalusEnum Properties aP ResyncEnum #Ø RecordChangeComplete ##' SchemaEnum _*j|}F2 RecordCount xị ì Class Recordset ;_ Member of AD909

Hinh 1-14 Khung nhin Object Browser cia Iép Recordset ADODB va m6t tap hop chon lựa các thành phần của nó

Trang 39

@ Chương 1: GIGI THIEU VE VBA

danh sách thả xuống ở đỉnh cia Object Browser Diéu nay lam thay đổi các nội dung của danh sách Classes va danh sách Members trong trình duyệt Hình 1-14 trinh bay lép Recordset da chon trong danh sách các Class và một danh sách các thuộc tính, phương pháp

và sự kiện xuất hiện trong danh sách Membecrs Chọn một thành

phan va click nút ? để xem hướng dẫn chỉ tiết về chủ dé dé Object Browser còn có thể tìm kiếm các lớp và các thành phần bằng công cụ tìm kiếm của nó Dùng hộp danh sách thả xuống thứ hai để chỉ định tiêu chuẩn tìm kiếm Điều này, đôi khi trả về các tập hợp kết quả trong một vài thư viện khác nhau Object Browser cũng cho phép bạn kiểm tra từng kết quả riêng biệt

JET, CÁC KIỂU DỮ LIỆU VÀ KHAI BÁO

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

Trang 40

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

Ngày đăng: 26/03/2015, 15:38

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN