Tổng quan về hàm xác nhận trong VB

Các bài viết hướng dẫn, giúp các bạn hiểu và tiếp cận với Visual Basic nhanh hơn
Đăng trả lời
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4785
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 528 times

Tổng quan về hàm xác nhận trong VB

Gửi bài by truongphu »

Tên bài viết: Tổng quan về hàm xác nhận trong VB (VB6, VBA, VBS), tham khảo VBLib
Tác giả: truongphu
Cấp độ bài viết: Chưa đánh giá
Tóm tắt: Mong muốn nâng cao các bài viết trên CLBVB, tôi cố viết vài bài về "Tổng quan", tuy nhiên do trình độ, xin chọn một đề tài nho nhỏ vừa sức. Mong sự đóng góp của các bạn. Bài viết mô tả nhiều hàm xác nhận
Tất cả các hàm xác nhận đều thuộc thư viện VBA.

A- Các Function xác nhận nhiều kiểu biến

A1- TypeName Function: Xác nhận tên kiểu biến:
TypeName function trả về các giá trị sau:

Kiểu biến - Diễn tả
Byte - Byte value
Integer - Integer value
Long - Long integer value
Single - Single-precision floating-point value
Double - Double-precision floating-point value
Currency - Currency value
Decimal - Decimal value
Date - Date or time value
String - Character string value
Boolean - Boolean value; True or False
Empty - Uninitialized
Null - No valid data
<object type> - Actual type name of an object
Object - Generic object
Unknown - Unknown object type
Nothing - Object variable that doesn't yet refer to an object instance
Error - Error

Mã: Chọn tất cả

 Dim ArrayVar(4), MyTypeNullVar = Null   ' Assign Null value. MyType = TypeName("VBScript")   ' Returns "String".MyType = TypeName(4)            ' Returns "Integer".MyType = TypeName(37.50)        ' Returns "Double".MyType = TypeName(NullVar)      ' Returns "Null".MyType = TypeName(ArrayVar)     ' Returns "Variant()".
A2- VarType Function: Xác nhận hằng kiểu biến:
VarType function trả về các giá trị sau:

Constant - Value - Diễn tả
vbEmpty - 0 - Empty (uninitialized)
vbNull - 1 - Null (no valid data)
vbInteger - 2 - Integer
vbLong - 3 - Long integer
vbSingle - 4 - Single-precision floating-point number
vbDouble - 5 - Double-precision floating-point number
vbCurrency - 6 - Currency
vbDate - 7 - Date
vbString - 8 - String
vbObject - 9 - Automation object
vbError - 10 - Error
vbBoolean - 11 - Boolean
vbVariant - 12 - Variant (used only with arrays of Variants)
vbDataObject - 13 - A data-access object
vbByte - 17 - Byte
vbArray - 8192 - Array

Mã: Chọn tất cả

Dim MyCheckMyCheck = VarType(300)          ' Returns 2.MyCheck = VarType(#10/19/62#)   ' Returns 7.MyCheck = VarType("VBScript")   ' Returns 8.
B- Các Function xác nhận một kiểu biến, giá trị trả về là True hay False

B1- IsArray Function: xác nhận mảng:

Mã: Chọn tất cả

Dim MyVariableDim MyArray(3)MyArray(0) = "Sunday"MyArray(1) = "Monday"MyArray(2) = "Tuesday"MyVariable = IsArray(MyArray) ' MyVariable contains "True".
B2- IsDate Function: Xác nhận ngày tháng:
Giá trị True nằm trong khoảng 1/1/100 đến 31/12/9999

Mã: Chọn tất cả

Dim MyDate, YourDate, NoDate, MyCheckMyDate = "October 19, 1962": YourDate = #10/19/62#: NoDate = "Hello"MyCheck = IsDate(MyDate)   ' Returns True.MyCheck = IsDate(YourDate)   ' Returns True.MyCheck = IsDate(NoDate)   ' Returns False.
Nên dùng hàm nầy để bắt người nhập liệu phải gõ đúng format, trừ số (ngày, tháng) nhỏ hơn 13 thì thua! Câu nầy là TrungDung1977 truyền nghề

B3- IsEmpty Function: Xác nhận rỗng:

Mã: Chọn tất cả

Dim MyVar, MyCheckMyCheck = IsEmpty(MyVar)   ' Returns True.MyVar = Null   ' Assign Null.MyCheck = IsEmpty(MyVar)   ' Returns False.MyVar = Empty   ' Assign Empty.MyCheck = IsEmpty(MyVar)   ' Returns True.
B4- IsNull Function: Xác nhận không có giá trị gì:

Mã: Chọn tất cả

Dim MyVar, MyCheckMyCheck = IsNull(MyVar)   ' Returns False.MyVar = Null   ' Assign Null.MyCheck = IsNull(MyVar)   ' Returns True.MyVar = Empty   ' Assign Empty.MyCheck = IsNull(MyVar)   ' Returns False.
B5- IsNumeric Function: Xác nhận số:

Mã: Chọn tất cả

Dim MyVar, MyCheckMyVar = 53   ' Assign a value.MyCheck = IsNumeric(MyVar)   ' Returns True.MyVar = "459.95"   ' Assign a value.MyCheck = IsNumeric(MyVar)   ' Returns True.MyVar = "45 Help"   ' Assign a value.MyCheck = IsNumeric(MyVar)   ' Returns False.
Ta có thể dùng function VarType để xây dựng các function xác nhận kiểu số:
5a-

Mã: Chọn tất cả

Public Function isByte(vValue As Variant) As Boolean      isByte = (VarType(vValue) = vbByte)      End Function
5b-

Mã: Chọn tất cả

Public Function isInteger(vValue) As Boolean       isInteger = (VarType(vValue) = vbInteger)       End Function
5c-

Mã: Chọn tất cả

Public Function isLong(vValue) As Boolean       isLong = (VarType(vValue) = vbLong)       End Function
5d-

Mã: Chọn tất cả

Public Function isSingle(vValue) As Boolean       isSingle = (VarType(vValue) = vbSingle)       End Function
5e-

Mã: Chọn tất cả

Public Function isDouble(vValue As Variant) As Boolean       isDouble = (VarType(vValue) = vbDouble)       End Function

Mã: Chọn tất cả

Dim MyInt, MyLng, MyCheckMyInt = 1MyLng = 1MyCheck = isLong(MyInt)  ' Returns False.MyCheck = isLong(MyLng)  ' Returns True.
B-6 IsObject Function: Xác nhận đối tượng:

Mã: Chọn tất cả

Dim MyInt, MyCheck, MyObjectSet MyObject = MeMyCheck = IsObject(MyObject)   ' Returns True.MyCheck = IsObject(MyInt)   ' Returns False.
Lưu ý rằng có 2 Object tổng quát: Object Automation chung cho nhiều đối tượng, mang hằng vb là 9, và loại Object Data chuyên dùng cho Access mang hằng vb = 13. Nếu cần, ta có thể dùng function VarType để xác nhận tách biệt 2 loại Object nầy, cấu trúc function xây dựng cũng đơn giản như mục B5a-

B-7 IsMissing Function: Kiểm tra xem argname có tồn tại hay không
Trích VBLib:

Mã: Chọn tất cả

Private Sub Form_Load()Dim ReturnValue' The following statements call the user-defined function procedure.    ReturnValue = ReturnTwice()' Returns Null.    ReturnValue = ReturnTwice(2)' Returns 4.End Sub'Khai bao mot hamFunction ReturnTwice(Optional A)' Viec khai bao tu khoa Optional truoc tham so A de bao cho VB biet' tham so A co truyen vao hay khong cung duoc   If IsMissing(A) Then' kiem tra xem tham so a co duoc truyen vao khong      ' Neu gia tri A khong duoc truyen vao thi tra ve Null      ReturnTwice = Null   Else' neu tham so a duoc truyen vao      ReturnTwice = A * 2   End IfEnd Function
B-8 IsError Function: Kiểm tra lỗi
thường dùng khi thao tác với Excel,
IsError( value )
Các giá trị lỗi trong Excel trả về True là: #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME? or #NULL
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4785
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 528 times

Re: Tổng quan về hàm xác nhận trong VB

Gửi bài by truongphu »

Bổ sung về hàm IsNumeric

Hàm IsNumeric

Hàm trả về True hay False một dữ liệu, dữ liệu là một chuỗi hay số

* Với dữ liệu là các số nguyên, thập phân, sẽ True đương nhiên
* Với dữ liệu chuỗi:
- Chuỗi số = True
- Chuỗi số-chữ hay chuỗi chữ:
--> Phải kèm &H hay &O ở trước nếu chuỗi biểu thị hệ 16 hay 8 = True
--> Không kèm: False._ TRỪ TRƯỜNG HỢP ĐẶC BIỆT BÊN DƯỚI

* Đặc biệt: Nếu có 1 ký tự "D" hay "E" xen vào giữa dãy số (d và e thường cũng được)
-> Phải là giữa dãy số, (đầu hay cuối không được! = False)
thì hàm IsNumeric vẫn xem dãy đó là số = True
Đó là số dạng ký hiệu khoa học với "D" = "E" là quy định kèm bao nhiêu số 0 ở sau:

145D3 = 145E3 = 145000
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Hình đại diện của thành viên
xuanquy_th
Guru
Guru
Bài viết: 803
Ngày tham gia: Thứ 3 05/08/2008 9:15 pm
Đến từ: Thanh Hoá
Has thanked: 1 time
Been thanked: 10 times
Tiếp xúc:

Re: Tổng quan về hàm xác nhận trong VB

Gửi bài by xuanquy_th »

-> Phải là giữa dãy số, (đầu hay cuối không được! = False)
Cái này đâu có đúng. Bác xem
[sql]SELECT IsNumeric('88D8822')[/sql]
Khi Chúa Trời đóng cánh cửa này lại, Ngài sẽ mở một cánh cửa khác cho ta.
Nhưng ta thường nhìn quá lâu vào cánh cửa đã đóng nên không thấy được có một cánh cửa khác đang mở ra cho ta!!!
Hình đại diện của thành viên
truongphu
VIP
VIP
Bài viết: 4785
Ngày tham gia: Chủ nhật 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 528 times

Re: Tổng quan về hàm xác nhận trong VB

Gửi bài by truongphu »

Hề hề, dù sao cũng cảm ơn bạn xuanquy_th, nhờ thế tôi mới viết được bài trên
Vậy mà bạn còn chịu khó đọc để chỉ lỗi... =D>

Tổng số các số trong chuỗi không được quá 308 ký tự

* Số 88D8822 có thêm 8822 số không, nghĩa là 8800...000 = 8824 ký tự. đây là số khủng = false

* số 12D306 (308 ký tự) = True
* số 123D306 (309 ký tự) = False
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh
Đăng trả lời

Quay về