Access
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Access

Visual Basic cho các ứng dụng trong Microsoft Access

Giới thiệu

Microsoft Access bao gồm một số tính năng cho phép các nhà phát triển cơ sở dữ liệu tạo biểu mẫu nhập dữ liệu, báo cáo và truy vấn có thể hướng dẫn người dùng truy vấn dữ liệu hiện có trong cơ sở dữ liệu và nhập dữ liệu mới. Các công cụ trình tạo truy vấn và trình hướng dẫn khác nhau giúp dễ dàng quá trình phát triển này. Tuy nhiên, ngay cả với những công cụ này, có thể có những trường hợp nhà phát triển muốn thêm nhiều chức năng hơn nữa mà các công cụ phát triển MS Access chưa cung cấp. Ví dụ:nhà phát triển có thể muốn tự động sửa dữ liệu xấu trước khi nó được lưu trong cơ sở dữ liệu, hiển thị cảnh báo nếu quy tắc kinh doanh bị vi phạm, giúp người dùng điều hướng từ biểu mẫu nhập dữ liệu này sang biểu mẫu nhập dữ liệu khác hoặc khởi chạy báo cáo với một số bộ lọc tùy chỉnh. Cách để thực hiện tùy chỉnh đó là thêm mã bằng ngôn ngữ lập trình Visual Basic for Applications.

Visual Basic for Applications (VBA) là ngôn ngữ lập trình được sử dụng trong dòng sản phẩm phần mềm Microsoft Office như Excel và Access. Ngôn ngữ VBA có nguồn gốc từ ngôn ngữ "Cơ bản" được phát minh vào năm 1964 và trở nên phổ biến trên máy tính cá nhân vào những năm 1970. Phần "Trực quan" của tên đã được Microsoft thêm vào để phản ánh việc sử dụng ngôn ngữ lập trình Cơ bản trong Microsoft Windows.

Có rất nhiều hướng dẫn giới thiệu lập trình Cơ bản. Hướng dẫn này sẽ tập trung vào một nhóm nhỏ các tính năng của ngôn ngữ VBA được sử dụng trong MS Access.

Nội dung

  • Sự kiện trong Microsoft Access
  • Ví dụ về mã VBA:Đảm bảo tên được đặt trong trường hợp thích hợp
  • Ngôn ngữ VBA - Khai báo và gán cho các biến, câu lệnh có điều kiện và nhận xét
  • Ngôn ngữ VBA - Hàm, Phương pháp và Ví dụ
  • Ngôn ngữ VBA - Thuộc tính
  • Bài tập viết mã VBA
  • Xử lý lỗi trong VBA
  • Chạy các truy vấn SQL tùy chỉnh trong VBA

Trang tiếp theo giới thiệu Sự kiện trong Microsoft Access.

Sự kiện trong Microsoft Access

Trong Access, mã lập trình VBA được đính kèm với các biểu mẫu và báo cáo và có thể được thiết lập để chạy tại một thời điểm cụ thể hoặc phản ứng với một sự kiện cụ thể. Phong cách lập trình này đôi khi được gọi là lập trình “Dựa trên sự kiện” nghĩa là mã mà nhà phát triển viết sẽ chạy để đáp ứng với một số sự kiện .

Khi một biểu mẫu được hiển thị trong Dạng xem Biểu mẫu, nó thường sẽ truy vấn bất kỳ dữ liệu hiện có nào từ các bảng bên dưới và sau đó chỉ cần ngồi yên ở đó cho đến khi người dùng thực hiện điều gì đó. Ví dụ:người dùng có thể nhấp vào một trong các nút điều hướng để chuyển sang bản ghi tiếp theo, họ có thể nhấp vào hộp văn bản và bắt đầu nhập một số dữ liệu mới hoặc họ có thể nhấp vào nút Đóng để đóng biểu mẫu. Mỗi hành động này dẫn đến một Sự kiện xảy ra dưới dạng. Mỗi lần nhấp chuột hoặc hành trình của bàn phím được xử lý như một sự kiện.

Đối với hầu hết các phần, các sự kiện có một hành vi mặc định. Nhấp vào nút điều hướng “bản ghi tiếp theo” làm cho biểu mẫu cuộn đến bản ghi dữ liệu tiếp theo. Nhập chữ cái “C” khi con trỏ ở trong hộp văn bản sẽ làm cho chữ “C” xuất hiện trong hộp văn bản. Nhấn phím TAB làm cho con trỏ nhảy đến hộp văn bản (hoặc điều khiển) tiếp theo trên biểu mẫu, v.v. Lập trình viên có thể ghi đè hoặc nâng cao hành vi mặc định này và chèn mã của riêng họ để chạy theo sự kiện.

Lập trình VBA trên Biểu mẫu và Báo cáo Access chủ yếu tập trung vào việc viết mã để phản hồi các sự kiện khác nhau.

Trước khi đi sâu vào chi tiết của các sự kiện, bạn có thể triển khai một ví dụ đơn giản. Để xem một số mã đang hoạt động, phần tiếp theo của hướng dẫn này cung cấp hướng dẫn cách thêm mã VBA vào biểu mẫu nhập dữ liệu.

Ví dụ về mã VBA:Đảm bảo tên ở trong trường hợp thích hợp

Sau đây là một ví dụ tương đối ngắn gọn và đơn giản về việc thêm mã VBA vào biểu mẫu nhập dữ liệu trong MS Access. Một số chi tiết sẽ được bỏ qua vì mục đích ngắn gọn. Sau ví dụ này, phần còn lại của hướng dẫn này sẽ điền vào các chi tiết đó.

Ví dụ này sử dụng Khách hàng biểu mẫu nhập dữ liệu đã được tùy chỉnh trong hướng dẫn Biểu mẫu MS Access Nâng cao. Bạn có thể muốn hoàn thành hướng dẫn đó (hoặc ít nhất là các phần xử lý biểu mẫu nhập dữ liệu Khách hàng) trước khi tiếp tục.

Khi nhập thông tin khách hàng mới, chúng tôi muốn đảm bảo rằng tên của Khách hàng được nhập "đúng trường hợp". Nghĩa là, chữ cái đầu tiên của tên phải là chữ in hoa và phần còn lại của tên phải là chữ thường. Nếu người dùng nhập:“joe”, chúng tôi muốn biểu mẫu tự động sửa lỗi này thành chữ hoa đúng:“Joe”.

Về phần Sự kiện, chúng tôi sẽ thêm mã được kết nối với sự kiện Sau khi cập nhật cho trường Tên trên biểu mẫu khách hàng. Điều này có nghĩa là sau khi một cái gì đó đã được thay đổi ( cập nhật ) trong trường Tên, sự kiện Sau khi cập nhật sẽ được kích hoạt và sau đó mã chúng ta viết sẽ có hiệu lực để đảm bảo bất kỳ tên nào đã nhập đều được chuyển đổi thành chữ hoa đúng.

Các bước sau đặt mã này vào đúng vị trí.

  1. Mở mục nhập dữ liệu Khách hàng trong Chế độ thiết kế.
  2. Nhấp chuột phải vào FirstName hộp văn bản và chọn Thuộc tính từ menu bật lên.
  3. Khi Trang thuộc tính được hiển thị, nhấp vào tab Sự kiện. Điều này được thể hiện trong hình bên dưới:

    Lưu ý danh sách các sự kiện được hiển thị. Mỗi người có thể được lập trình để phản hồi sự kiện cụ thể xảy ra với FirstName hộp văn bản.

  4. Tạo một trình xử lý sự kiện mới bằng cách nhấp vào ba dấu chấm ở bên phải của sự kiện Sau khi cập nhật.
  5. Chọn trình tạo cửa sổ sẽ xuất hiện. Chọn Trình tạo mã và sau đó nhấp vào nút OK cái nút.
  6. Cửa sổ chỉnh sửa mã VBA sẽ xuất hiện. Lưu ý rằng Access đã tạo phần đầu của chương trình con bắt đầu bằng các từ Private Sub và kết thúc bằng các từ End Sub.
    Tên của chương trình con được tạo bằng cách sử dụng tên của điều khiển biểu mẫu (FirstName) và tên của Sự kiện mà chương trình con này sẽ phản hồi (AfterUpdate).

    Dòng End Sub là nơi chương trình con cụ thể này sẽ kết thúc.

  7. Thêm mã sau vào dòng trống giữa Private Sub và End Sub.:
    FirstName = StrConv(FirstName, vbProperCase)
    
    

    Sau khi hoàn thành, đoạn mã sẽ xuất hiện như sau:

    Dòng mã mới này thực hiện những việc sau:

    StrConv là một hàm nhận nội dung của hộp văn bản FirstName và chuyển đổi nó theo tham số thứ hai được cung cấp là vbProperCase trong ví dụ này. Sau khi quá trình chuyển đổi này được thực hiện, kết quả sẽ được gán (sử dụng dấu bằng) trở lại hộp văn bản FirstName. Thao tác này sẽ ghi đè bất kỳ thứ gì hiện có trong hộp văn bản FirstName. Ví dụ:hàm này sẽ lấy “sally”, hãy chuyển nó thành “Sally” và sau đó đặt “Sally” vào hộp văn bản FirstName.

  8. Lưu mã mới này bằng cách kéo xuống Tệp và chọn Lưu .
  9. Kiểm tra mã mới. Chuyển trở lại màn hình Chế độ thiết kế Microsoft Access. Thay đổi chế độ xem thành Dạng xem biểu mẫu.
  10. Điều hướng đến một bản ghi trống. Nhấp vào trường FirstName và nhập tên bằng tất cả các chữ cái viết thường:

  11. Nhấn vào Tab phím để chuyển đến hộp văn bản tiếp theo. Tên của Joe nên được đổi thành “Joe” như hình dưới đây:
  12. Nếu bạn gặp lỗi, hãy quay lại trình chỉnh sửa mã VBA và đảm bảo rằng bạn đã viết đúng tất cả các phần của mã. Bạn có thể cần phải kéo xuống Chạy và chọn Đặt lại để ngăn mã VBA chạy.

Ví dụ trên cung cấp một cái nhìn nhanh về cách người ta có thể tùy chỉnh hành vi của biểu mẫu để giúp người dùng nhập dữ liệu được định dạng độc đáo vào cơ sở dữ liệu. Một số chi tiết đã được bỏ qua trong ví dụ này và những chi tiết đó sẽ được thảo luận trong phần còn lại của hướng dẫn này.

Ngôn ngữ VBA

Phần này giới thiệu ngắn gọn các phần chính của ngôn ngữ VBA vì nó được sử dụng trong MS Access. Tổng quan toàn diện về VBA nằm ngoài phạm vi của hướng dẫn này. Tham khảo các sách và tài liệu toàn diện hơn được cung cấp ở cuối hướng dẫn này.

Khai báo các biến

Một biến số là tên được đặt cho một trình giữ chỗ nơi người lập trình có thể lưu trữ một số dữ liệu. Ví dụ:một biến có thể được sử dụng để lưu trữ một số trong khi chúng tôi thực hiện một số phép toán trên đó hoặc so sánh giá trị của nó với các biến khác. Các biến có thể được khai báo để giữ các giá trị của một kiểu dữ liệu cụ thể chẳng hạn như Số nguyên, Chuỗi hoặc Ngày. Để khai báo một biến mới, hãy sử dụng câu lệnh Dim. Ví dụ, để khai báo một biến mới có tên MyName và thiết lập nó để giữ một Chuỗi (ký tự), hãy làm như sau:

Dim strMyName thành chuỗi

Để khai báo một biến mới có tên là “AccountBalance” và thiết lập nó để lưu trữ một số với số thập phân, hãy sử dụng như sau:

Dim dblAccountBalance As Double

Chỉ định giá trị

Một giá trị có thể được gán cho một biến hoặc cho một điều khiển trên biểu mẫu bằng cách sử dụng dấu bằng. Ví dụ:để lưu tên “Alex” trong biến MyName, hãy sử dụng như sau:

strMyName =“Alex”

Để sao chép nội dung của hộp văn bản FirstName vào biến MyName, hãy sử dụng:

strMyName =[FirstName]

Giá trị cũng có thể được tính toán trước khi được chỉ định. Ví dụ:biểu thức sau lấy số dư tài khoản của khách hàng hiện tại tạo thành hộp văn bản [Số dư], thêm lãi suất 1% (bằng cách nhân số dư với 1,01) và sau đó giảm kết quả đi 10 đô la. Cuối cùng, kết quả được gán cho biến AccountBalance.

dblAccountBalance =([Số dư] * 1,01) - 10,00

Tuyên bố có điều kiện

Một câu lệnh điều kiện sử dụng một phép thử logic để xác định dòng mã nào sẽ chạy tiếp theo. Câu lệnh điều kiện If… Then được sử dụng khá thường xuyên. Ví dụ:

If AccountBalance < 1000 Then
      MonthlyFee = 10
Else
      MonthlyFee = 0
End If

Biểu thức logic AccountBalance <1000 được đánh giá. Nếu biểu thức này đúng (ví dụ nếu AccountBalance là $ 400) thì dòng tiếp theo sau Sau đó sẽ được chạy. Trong ví dụ này, MonthlyFee =10.

Nếu biểu thức này là Sai, thì dòng sau Biểu thức khác sẽ được chạy.

Biểu thức logic có thể bao gồm một số phần được kết nối bởi các toán tử Boolean OR, AND và NOT. Có thể tìm thấy một cuộc thảo luận kỹ lưỡng hơn về các biểu thức Boolean trong hướng dẫn lập trình này. Ví dụ:giả sử chúng tôi miễn phí hàng tháng nếu tài khoản dưới một năm tuổi. Giả sử chúng ta có AccountAge là tuổi của tài khoản tính bằng tháng. Sau đó, mã sẽ là:

If AccountBalance < 1000 AND AccountAge > 12 Then
      MonthlyFee = 10
Else
      MonthlyFee = 0
End If

Có thể chạy nhiều hơn một dòng mã trong câu lệnh If… Then và câu lệnh If… Then có thể được lồng vào nhau.

Nhận xét

Khi lập trình bằng bất kỳ ngôn ngữ lập trình nào, bạn nên đưa vào các bình luận mô tả mã. Trong VBA, một nhận xét có thể được đưa vào bằng cách bắt đầu bằng một câu trích dẫn duy nhất. Lấy ví dụ ở trên, chúng tôi có thể thêm các nhận xét sau:

Các phần khác của ngôn ngữ VBA được thảo luận trên trang tiếp theo.

Ngôn ngữ VBA - Tiếp theo

Chức năng

Ngôn ngữ VBA có một số lượng lớn các hàm và phương thức tích hợp có thể được sử dụng để thực hiện các tác vụ khác nhau như các hàm toán học (sin, cos, tan), các hàm chuỗi và nhiều hàm khác. Các hàm thường có một hoặc nhiều tham số đầu vào được hàm sử dụng. Ví dụ, trong hàm Cos (45), “45” là góc đầu vào mà hàm cosin sẽ hoạt động. Hàm StrConv yêu cầu hai tham số đầu vào:Chuỗi để chuyển đổi và kiểu chuyển đổi:

StrConv (FirstName, vbProperCase)

Một số chức năng tiện dụng bao gồm:

MsgBox (lời nhắc, nút, tiêu đề) Hiển thị hộp thông báo bật lên với văn bản nhắc, các nút và tiêu đề
StrConv (biểu thức, kiểu) Chuyển đổi biểu thức chuỗi thành chữ hoa, chữ thường hoặc chữ hoa / thường
Left (biểu thức, ký tự) Tận cùng bên trái các ký tự từ biểu thức chuỗi
Mid (biểu thức, bắt đầu, ký tự) Lấy tập hợp các ký tự ở giữa từ biểu thức chuỗi bắt đầu từ đầu
IsNull (biểu thức) Kiểm tra xem biểu thức chuỗi (hoặc hộp văn bản) không có nội dung nào (là null)
Nz (biểu thức, giá trị_if_null) Nếu biểu thức là null, hãy điền vào giá trị mặc định
Bây giờ () Trả về ngày và giờ hiện tại
Tròn (biểu thức, số thập phân) Làm tròn biểu thức số thành một số chữ số thập phân
RGB (đỏ, lục, lam) Trả về số nguyên màu dựa trên sự kết hợp của đỏ, lục và lam

Phương pháp

Các phương thức trong VBA giống như các hàm nhưng chúng được kết nối với một điều khiển hoặc đối tượng khác trên biểu mẫu hoặc báo cáo.

Một số phương pháp tiện dụng bao gồm:

DoCmd.CancelEvent Hủy sự kiện hiện tại đang được xử lý
DoCmd.Close Đóng biểu mẫu (hoặc cơ sở dữ liệu) hiện tại
DoCmd.OpenForm Mở biểu mẫu mới
DoCmd.OpenReport Chạy lệnh MS Access chẳng hạn như lưu dữ liệu mới hoặc cập nhật, hoàn tác thay đổi hoặc thoát khỏi biểu mẫu
.SetFocus Đặt tiêu điểm cho điều khiển trên biểu mẫu
.Undo Hoàn tác thay đổi hoặc lệnh gần đây nhất
.Refresh Cập nhật tất cả dữ liệu bên dưới biểu mẫu
.Requery Truy vấn lại dữ liệu được cung cấp cho biểu mẫu
.Repaint Vẽ lại tất cả các điều khiển trên một biểu mẫu

Nhiều chức năng và phương pháp khác được liệt kê trên trang web này của Microsoft.

Bộ ví dụ sau sử dụng nhiều hàm và phương pháp khác nhau theo các cách kết hợp khác nhau.

Ví dụ

Hiển thị cảnh báo cho người dùng nếu số dư tài khoản dưới 1.000 đô la

If AccountBalance < 1000 Then
      MsgBox("Warning: The Account Balance is now less than $1,000.")
End If

Nếu hộp văn bản FirstName trên biểu mẫu có một cái gì đó trong đó, thì hãy chuyển đổi nó thành trường hợp thích hợp

If Not IsNull( [FirstName] ) Then
   FirstName = StrConv( [FirstName], vbProperCase )
End If

trang tiếp theo giới thiệu Thuộc tính của các đối tượng khác nhau.

Thuộc tính

Mỗi phần tử trên biểu mẫu hoặc báo cáo nhập dữ liệu có một tập hợp các thuộc tính Liên kết với nó. Các thuộc tính kiểm soát vị trí, màu sắc, phông chữ, nền và các thuộc tính xuất hiện và định dạng khác của mỗi điều khiển. Ví dụ, một số thuộc tính của TextBox bao gồm:

Hiển thị Xác định xem hộp văn bản có hiển thị trên biểu mẫu hay không
Đã khóa Xác định xem có thể thay đổi dữ liệu trong hộp văn bản hay không
Chỉ mục tab Thứ tự của từng điều khiển khi người dùng điều hướng biểu mẫu bằng cách nhấn Tab
Nhãn Xác định tên của nhãn được liên kết với hộp văn bản
Chiều rộng, Chiều cao, Vị trí trên cùng và dưới cùng Cho biết vị trí và kích thước tương đối của hộp văn bản
Kiểu và màu nền Đặt kiểu và màu nền của hộp văn bản
Kiểu và màu đường viền Đặt kiểu và màu của đường viền xung quanh hộp văn bản
Kích thước phông chữ, độ đậm, gạch dưới, in nghiêng, màu sắc và căn lề Đặt phông chữ và kiểu
Khoảng cách lề và khoảng đệm - Đặt lề và khoảng đệm xung quanh bên trong hộp văn bản

Các thuộc tính có thể được đặt bằng cách sử dụng Dạng xem Thiết kế và được lưu cùng với biểu mẫu hoặc báo cáo. Các thuộc tính cũng có thể được thay đổi bằng cách sử dụng mã VBA khi biểu mẫu đang chạy. Để truy cập một thuộc tính trong VBA, hãy sử dụng tên của điều khiển, sau đó là một dấu chấm và sau đó là tên của thuộc tính. Ví dụ:mã sau thay đổi màu phông chữ của hộp văn bản CustomerID thành Màu đỏ:

CustomerID.ForeColor =vbRed

Các phần tiếp theo cung cấp một số bài tập kết hợp các phần khác nhau của ngôn ngữ lập trình VBA để tùy chỉnh hoạt động của các biểu mẫu nhập dữ liệu khác nhau.

Bài tập về mã VBA

Hãy thử các bài tập sau đây để tùy chỉnh các biểu mẫu. Tham khảo lại các phần trước để biết các ví dụ về mã có thể được điều chỉnh để phù hợp với bài tập hiện tại.

Bài tập 1

Sửa đổi biểu mẫu CustomerDataEntry để thêm hai trình xử lý sự kiện AfterUpdate sẽ chuyển đổi Tên và Họ thành trường hợp thích hợp (Tạo một trình xử lý AfterUpdate riêng cho mỗi hộp văn bản). Viết mã để kiểm tra trước để đảm bảo rằng hộp văn bản không rỗng trước khi cố gắng chuyển đổi văn bản.

Bài tập 2

Sửa đổi biểu mẫu AccountsDataEntry để thêm trình xử lý sự kiện AfterUpdate sẽ hiển thị hộp thông báo cảnh báo nếu số dư tài khoản dưới 5.000 đô la. Đồng thời chuyển màu phông chữ của hộp văn bản Cân bằng là Đỏ.

Bài tập 3

Sửa đổi biểu mẫu Nhập dữ liệu khách hàng. Tạo một chương trình con On Lost Focus sẽ chuyển nhãn cho hộp văn bản FirstName thành màu đỏ (vbRed) nếu người dùng rời khỏi hộp văn bản FirstName mà không nhập bất cứ thứ gì. Đặt nhãn thành màu xanh lam (vbBlue) nếu có thứ gì đó trong hộp văn bản. Trong ví dụ dưới đây, không có gì được nhập vào hộp văn bản FirstName và sau đó người dùng gắn thẻ vào hộp văn bản tiếp theo khiến nhãn FirstName chuyển sang màu đỏ.

Trang tiếp theo của hướng dẫn này thảo luận về cách xử lý lỗi trong mã VBA.

Xử lý lỗi trong VBA

Đôi khi mã VBA sẽ gặp lỗi. Ví dụ:nếu một hộp văn bản trống và chúng tôi cố gắng chuyển đổi nội dung của hộp văn bản sang chữ hoa chữ thường thích hợp, thì hàm StrCnv sẽ không thành công. Một ví dụ khác là khi phép chia cho số 0 xảy ra. Nếu không xử lý lỗi, những sự cố này có thể gây ra sự cố chương trình VBA. Khi xảy ra lỗi, mã đặc biệt có thể bắt đầu hoạt động để xử lý lỗi và tiếp tục xử lý mã VBA.

Hai tính năng xử lý lỗi chính của VBA là câu lệnh On Error Goto và câu lệnh Resume Next. Hai câu lệnh mã VBA này hoạt động cùng nhau để giữ cho VBA không làm ứng dụng bị treo.

Câu lệnh On Error Goto thông báo cho VBA về những việc cần làm khi xảy ra lỗi trong chương trình con. Phần Goto của câu lệnh tham chiếu đến một nhãn ở nơi khác trong mã nơi VBA sẽ tiếp tục hoạt động. Khi chương trình VBA đến nhãn, bất kỳ lỗi nào sẽ hiển thị trong một đối tượng có tên là Err. Thuộc tính Err.Description sẽ chứa mô tả bằng văn bản về lỗi mới nhất gặp phải. Câu lệnh Tiếp tục Tiếp tục sẽ khiến chương trình VBA tiếp tục chạy từ thời điểm sau khi lỗi xảy ra.

Ví dụ sau mở rộng về quy trình FirstName_AfterUpdate được giới thiệu ở đầu hướng dẫn này. Giờ đây, chương trình VBA có thể xử lý bất kỳ lỗi nào có thể xảy ra trong chương trình.

Private Sub FirstName_AfterUpdate
     ' Subroutine to convert the FirstName of the customer to Proper Case
    On Error Goto FirstName_AfterUpdate_Error_Handler
     FirstName = StrConv(FirstName, vbProperCase)
     ' If the conversion was successful, exit this subroutine
     Exit Sub
FirstName_AfterUpdate_Error_Handler:
       ' If there is an error show the description of the error
      MsgBox Err.Description
      ' Resume with the next statement In the subroutine
     Resume Next
End Sub

phần tiếp theo của hướng dẫn này thảo luận về cách bao gồm mã SQL trong VBA.

Chạy truy vấn SQL tùy chỉnh trong VBA

Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ lập trình được sử dụng trong cơ sở dữ liệu quan hệ như MS Access, SQL Server, Oracle và nhiều loại khác. Các câu lệnh SQL có thể được sử dụng để chèn, cập nhật, xóa và truy xuất (chọn) các bản ghi dữ liệu từ các bảng (trong số nhiều khả năng khác). Một ví dụ đơn giản về câu lệnh SQL sẽ là:

SELECT customerid, firstname, lastname
FROM  customer

Mã SQL có thể được viết trong VBA và chạy vào một thời điểm thích hợp. Ví dụ, một chương trình con VBA có thể được viết để truy vấn bảng Khách hàng để tìm ID Khách hàng cao nhất. Sau đó, chúng tôi có thể thêm 1 vào số này để đạt được CustomerID mới, chưa sử dụng, cho một bản ghi mới.

Các bước chung để thực hiện loại nhiệm vụ này là:

Tạo câu lệnh SQL

Chạy Câu lệnh SQL bằng cách sử dụng kết nối cơ sở dữ liệu đang mở (được đặt tên là CurrentDb trong VBA)

Truy xuất các bản ghi kết quả và sử dụng dữ liệu đã truy xuất

Để tạo chương trình con VBA này, hãy mở biểu mẫu CustomerDataEntry và lấy các thuộc tính của trường CustomerID. Trong tab sự kiện, hãy nhấp vào ba dấu chấm ở bên phải của sự kiện On Dbl Click. Chọn Trình tạo mã và phần sơ khai sẽ được tạo như sau:

Private Sub CustomerID_DblClick(Cancel As Integer)

End Sub

Thêm mã sau:

Private Sub CustomerID_DblClick(Cancel As Integer)
    ' Create a new CustomerID when user double-clicks in the CustomerID field
    On Error GoTo ErrorHandler
    Dim rstResults As Recordset ' This will hold the set of result records
    Dim strSQL As String        ' This variable will hold the text of the SQL Statement
    ' If there is nothing in the CustomerID text box
    If IsNull(CustomerID) Then
       ' Make the SQL statement
       strSQL = "SELECT MAX(customerid) + 1 AS NewID FROM customer"
       ' Run the SQL query against the current database
       Set rstResults = CurrentDb.OpenRecordset(strSQL)
       ' If at least 1 record is returned
       If rstResults.EOF = False Then
          ' Assign the NewID to the CustomerID field
          CustomerID = rstResults!NewID
       End If

        rstResults.Close              ' Close up the result set
       Set rstResults = Nothing      ' Empty out the result set
    End If
    Exit Sub

ErrorHandler:
    Set rstResults = Nothing
End Sub

Mã sẽ trông giống như sau khi đã hoàn tất:

Lưu tệp và sau đó xem biểu mẫu CustomerDataEntry. Điều hướng đến một bản ghi mới và sau đó bấm đúp vào trường CustomerID. ID khách hàng mới sẽ được tạo tự động.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tính năng ẩn:Kéo và thả các đối tượng truy cập giữa các tệp

  2. Tạo Menu Truy cập với Điều khiển Chế độ xem Dạng cây

  3. Đặc điểm của một báo cáo

  4. Kết nối SAP Lumira với Microsoft Access

  5. Những lý do để biến ứng dụng Access thành ứng dụng dựa trên web