1. Trang chủ
  2. » Công Nghệ Thông Tin

Công cụ hợp lệ hoá dữ liệu trong visual basic

7 341 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 102,22 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ta có thể viết mã lệnh trong sự kiện này để kiểm soát xem dữ liệu khi dời khỏi điều kiểm đã hợp lệ chưa.. Hợp lệ hoá sử dụng sự kiện ValidateSự kiện Validate xảy ra trước khi người dùng

Trang 1

Công cụ hợp lệ hoá dữ liệu

trong Visual Basic

Bởi:

Khoa CNTT ĐHSP KT Hưng Yên Hợp lệ hoá dữ liệu là làm cho dữ liệu nhập vào đảm bảo tính hợp lệ

Hợp lệ hoá sử dụng sự kiện LostFocus và phương thức SetFocus

Sự kiện LostFocus xảy ra mỗi khi một điều kiểm mất tiêu điểm Ta có thể viết mã lệnh trong sự kiện này để kiểm soát xem dữ liệu khi dời khỏi điều kiểm đã hợp lệ chưa Nếu như dữ liệu chưa hợp lệ ta có thể yêu cấu người nhập dữ liệu phải nhập lại Như vậy ta phải dời tiêu điểm về điều kiểm Khi đó ta sẽ sử dụng phương thức SetFocus để đặt lại tiêu điểm cho điều kiểm

Khung của thủ tục LostFocus như sau:

Private Sub ControlName_ LostFocus()

‘ Mã Code

End Sub

Ví dụ:

Private Sub TxtTen_ LostFocus()

If len(TxtTen.Text)=0 then

Msgbox “Tên không được rỗng !”

TxtTen.SetFocus

End If

End Sub

Trang 2

Hợp lệ hoá sử dụng sự kiện Validate

Sự kiện Validate xảy ra trước khi người dùng có thể dịch chuyển tiêu điểm ra xa điều kiểm đó Do đó ta có thể đặt mã lệnh để kiểm soát tính hợp lệ của dữ liệu trong sự kiện Validate nhằm ngăn cản người dùng dịch chuyển tiêu điểm cho đến khi các tiêu chuẩn

về hình dạng dữ liệu được thoả mãn

Khung của thủ tục Validate như sau:

Private Sub ControlName_ Validate(Cancel As Boolean)

‘ Mã Code

End Sub

Nếu bạn xác lập Cancel là True thì người dùng sẽ không có khả năng dời khỏi điều kiểm này cho đến khi người đó nhận được đữ liệu đúng

VD:

Private Sub TxtTen_ Validate(Cancel As Boolean)

If len(TxtTen.Text)=0 then

Msgbox “Tên không được rỗng !”

Cancel=True

End If

End Sub

Trên thực tế VB cung cấp cho bạn một dòng lệnh để bảo vệ VB còn tạo ra biến cố Validate cho điều khiển dữ liệu mỗi khi bản ghi hiện hành sắp được thay đổi Ví dụ bằng

phương pháp Move First hoặc trứơc khi xử lý phương pháp Update, Delete hoặc Close.

Cú pháp cho thủ tục biến cố này như sau:

Sub DataControlName_ Validate([Index As Integer,] Action As Integer, Save_ As Integer)

End Sub

Trang 3

cập dữ liệu bạn có thể đặt vào biến cố này chỉ gồm UpdateRecord, UpdateControls, bởi

vì chúng đều không sinh ra biến cố Validate Điều này cung cấp cho bạn phương pháp cập nhật cở dữ liệu hoặc các điều khiển gắn kết trong thủ tục biến cố đó

Trong đó tham số tuỳ chon Index được dùng nếu điều khiển dữ liệu là phần của mảng điều khiển một mảng điều khiển Tham số Action được gởi bởi VB cho thủ tục biến cố

và báo nguyên nhân thực sự để biến cố Validate được tạo ra Dưới đây là danh sách các hằng kí hiệu được xây dựng trong VB khả dĩ cho sự kiện Validate

vbDataActionCancel 0 Cancel the operation when the Sub exits

vbDataActionMoveFirst 1 MoveFirst method

vbDataActionMovePrevious 2 MovePrevious method

vbDataActionMoveNext 3 MoveNext method

vbDataActionMoveLast 4 MoveLast method

vbDataActionAddNew 5 AddNew method

vbDataActionUpdate 6 Update operation (not UpdateRecord)

vbDataActionDelete 7 Delete method

vbDataActionBookmark 9 The Bookmark property has been set

vbDataActionClose 10 The Close method

vbDataActionUnload 11 The form is being unloaded

Nếu bạn thay đổi tham số Action thành vbDataActionCancel thì VB sẽ xoá thao tác này trước khi rời khỏi thủ tục Sub Ngoài ra nếu bạn thay đổi tham số Action sang một trong các giá trị khác, VB sẽ thực thi thao tác đó thay vì thao tác ban đầu khi thủ tục trải qua

Ví dụ, nếu thủ tục biến cố Validate đã được xảy ra do phương pháp MoveFirst và trong tiến trình của thủ tục bạn có dòng

Action=vbDataActionMoveLast

Thì VB sẽ dịch chuyển bản ghi hiện hành đến cuối bảng đó Bạn chỉo có thể dùng khả năng này nếu các hành động đó là tương thích VD: bạn không thể thay đổi tham số hành động MoveFirst sang tham số vbDataActionUnload mà không có lỗi

Trang 4

Tham số Save nhận hai giá trị True, False Nếu thông tin bất kỳ trong các điều khiển gắn kết data-aware đã được thay đổi, tham số này là True Điều đó cho bạn một phương pháp phân tích thông tin có trong điêug khiển gắn kết trước khi cập nhật cơ sở dữ liệu Để xác định các điều khiển data-aware nào đã được thay đổi, bạn dùng tính chất DataChanged của điều khiển đó Tính chất này là True nếu nội dung của điều khiển đã được thay đổi

và là False nếu không được thay đổi

Hợp lệ hoá sử dụng sự kiện KeyPress, KeyUp, KeyDown

- Các sự kiện trên xảy ra trên các điều kiểm theo bảng sau:

Sự kiện Xảy ra khi

KeyPress Người sử dụng nhấn và thả một phím trên bàn phím trong khi một đốitượng đang trong tầm ngắm KeyDown Người sử dụng nhấn một phím trên bàn phím trong khi một đối tượng

đang trong tầm ngắm KeyUp Người sử dụng thả một phím trên bàn phím trong khi một đối tượng đang

trong tầm ngắm

Cú pháp của các biến cố này như sau:

Private Sub ControlName_ KeyPress(KeyAscii As Integer)

End Sub

Private Sub ControlName_ KeyDown(KeyCode As Integer, Shift As Integer)

End Sub

Private Sub ControlName_ KeyUp(KeyCode As Integer, Shift As Integer)

End Sub

Trong đó tham số KeýyAscii và KeyCode là mã ASCII của kýy tự vừa được nhấn Tham

số Shift có thể nhận các giá trị sau

Constant Value Description

vbShiftMask 1 SHIFT key bit mask

VbCtrlMask 2 CTRL key bit mask

Trang 5

VbAltMask 4 ALT key bit mask.

Như vậy ta có thể đặt mã lệnh trong các sự kiện này để kiểm soát xem các phím được nhấn xem có hợp lệ hay không và có thể huỷ bỏ những ky tự nhận được bằng cách gán KeyCode=0

Ví dụ:

Private Sub TxtSo_KeyPress(KeyAscii As Integer)

Static dautru As Boolean

Static daucham As Boolean

Select Case KeyAscii

Case vbKeyBack, vbKeyLeft, vbKeyRight, Asc("0") To Asc("9")

Case Asc("-")

If (txtso.SelStart <> 0) Or dautru = True Then

KeyAscii = 0

Else

dautru = True

End If

Case Asc(".")

If daucham = True Then

KeyAscii = 0

Else

daucham = True

End If

Case Else

Trang 6

KeyAscii = 0

End Select

End Sub

Hợp lệ hoá sử dụng sự kiện MouseDown, MoseUp

- Các sự kiện trên xảy ra trên các điều kiểm theo bảng sau:

Sự kiện Xảy ra khi

MouseDown Người sử dụng nhấn một nút chuột bất kỳ trong khi con trỏ chuột đang

nằm trên một đối tượng

MouseUp Người sử dụng thả một nút chuột bất kỳ trong khi con trỏ chuột đangnằm trên một đối tượng.

Cú pháp của các biến cố này như sau:

Private Sub ControlName_ MouseUp(Button As Integer, Shift As Integer, X As_ Single, Y As Single)

End Sub

Private Sub ControlName_ MouseDown(Button As Integer, Shift As Integer, X As_ Single, Y As Single)

End Sub

Constant (Button) Value Description

vbLeftButton 1 Left button is pressed

vbRightButton 2 Right button is pressed

vbMiddleButton 4 Middle button is pressed

Constant (Shift) Value Description

vbShiftMask 1 SHIFT key is pressed

vbCtrlMask 2 CTRL key is pressed

vbAltMask 4 ALT key is pressed

Trang 7

Ta có thể đặt mã lệnh để kiểm soát tính hợp lệ của dữ liệu trong hai sự kiện nhằm ngăn cản sự chấp nhận dữ liệu cho đến khi các tiêu chuẩn về hình dạng dữ liệu được thoả mãn

Ví dụ:

Private Sub Cmdnhap_MouseDown(Button As Integer, Shift As Integer, X As Single,_

Y As Single)

If Len(txtten) = 0 Then

MsgBox "Nhap ho ten!"

txtten.SetFocus

End If

End Sub

Ngày đăng: 31/12/2015, 14:46

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w