• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

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
Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4763
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 517 time

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

Gửi bàigửi bởi truongphu » T.Tư 14/05/2008 9:41 am

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 hết

  1. Dim ArrayVar(4), MyType
  2. NullVar = Null   ' Assign Null value.
  3.  
  4. MyType = TypeName("VBScript")   ' Returns "String".
  5. MyType = TypeName(4)            ' Returns "Integer".
  6. MyType = TypeName(37.50)        ' Returns "Double".
  7. MyType = TypeName(NullVar)      ' Returns "Null".
  8. 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 hết

  1. Dim MyCheck
  2. MyCheck = VarType(300)          ' Returns 2.
  3. MyCheck = VarType(#10/19/62#)   ' Returns 7.
  4. 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 hết

  1. Dim MyVariable
  2. Dim MyArray(3)
  3. MyArray(0) = "Sunday"
  4. MyArray(1) = "Monday"
  5. MyArray(2) = "Tuesday"
  6. 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 hết

  1. Dim MyDate, YourDate, NoDate, MyCheck
  2. MyDate = "October 19, 1962": YourDate = #10/19/62#: NoDate = "Hello"
  3. MyCheck = IsDate(MyDate)   ' Returns True.
  4. MyCheck = IsDate(YourDate)   ' Returns True.
  5. 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 hết

  1. Dim MyVar, MyCheck
  2. MyCheck = IsEmpty(MyVar)   ' Returns True.
  3. MyVar = Null   ' Assign Null.
  4. MyCheck = IsEmpty(MyVar)   ' Returns False.
  5. MyVar = Empty   ' Assign Empty.
  6. MyCheck = IsEmpty(MyVar)   ' Returns True.


B4- IsNull Function: Xác nhận không có giá trị gì:

Mã: Chọn hết

  1. Dim MyVar, MyCheck
  2. MyCheck = IsNull(MyVar)   ' Returns False.
  3. MyVar = Null   ' Assign Null.
  4. MyCheck = IsNull(MyVar)   ' Returns True.
  5. MyVar = Empty   ' Assign Empty.
  6. MyCheck = IsNull(MyVar)   ' Returns False.


B5- IsNumeric Function: Xác nhận số:

Mã: Chọn hết

  1. Dim MyVar, MyCheck
  2. MyVar = 53   ' Assign a value.
  3. MyCheck = IsNumeric(MyVar)   ' Returns True.
  4. MyVar = "459.95"   ' Assign a value.
  5. MyCheck = IsNumeric(MyVar)   ' Returns True.
  6. MyVar = "45 Help"   ' Assign a value.
  7. 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 hết

  1. Public Function isByte(vValue As Variant) As Boolean
  2.       isByte = (VarType(vValue) = vbByte)
  3.       End Function

5b-

Mã: Chọn hết

  1. Public Function isInteger(vValue) As Boolean
  2.        isInteger = (VarType(vValue) = vbInteger)
  3.        End Function

5c-

Mã: Chọn hết

  1. Public Function isLong(vValue) As Boolean
  2.        isLong = (VarType(vValue) = vbLong)
  3.        End Function

5d-

Mã: Chọn hết

  1. Public Function isSingle(vValue) As Boolean
  2.        isSingle = (VarType(vValue) = vbSingle)
  3.        End Function

5e-

Mã: Chọn hết

  1. Public Function isDouble(vValue As Variant) As Boolean
  2.        isDouble = (VarType(vValue) = vbDouble)
  3.        End Function

Mã: Chọn hết

  1. Dim MyInt, MyLng, MyCheck
  2. MyInt = 1
  3. MyLng = 1
  4. MyCheck = isLong(MyInt)  ' Returns False.
  5. MyCheck = isLong(MyLng)  ' Returns True.


B-6 IsObject Function: Xác nhận đối tượng:

Mã: Chọn hết

  1. Dim MyInt, MyCheck, MyObject
  2. Set MyObject = Me
  3. MyCheck = IsObject(MyObject)   ' Returns True.
  4. 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 hết

  1. Private Sub Form_Load()
  2. Dim ReturnValue
  3. ' The following statements call the user-defined function procedure.
  4.     ReturnValue = ReturnTwice()' Returns Null.
  5.     ReturnValue = ReturnTwice(2)' Returns 4.
  6. End Sub
  7. 'Khai bao mot ham
  8. Function ReturnTwice(Optional A)
  9. ' Viec khai bao tu khoa Optional truoc tham so A de bao cho VB biet
  10. ' tham so A co truyen vao hay khong cung duoc
  11.    If IsMissing(A) Then' kiem tra xem tham so a co duoc truyen vao khong
  12.       ' Neu gia tri A khong duoc truyen vao thi tra ve Null
  13.       ReturnTwice = Null
  14.    Else' neu tham so a duoc truyen vao
  15.       ReturnTwice = A * 2
  16.    End If
  17. End 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 người dùng
truongphu
VIP
VIP
Bài viết: 4763
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 517 time

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

Gửi bàigửi bởi truongphu » T.Năm 07/01/2010 8:08 pm

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 người dùng
xuanquy_th
Guru
Guru
Bài viết: 800
Ngày tham gia: T.Ba 05/08/2008 9:15 pm
Đến từ: Thanh Hoá
Has thanked: 1 time
Been thanked: 10 time
Liên hệ:

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

Gửi bàigửi bởi xuanquy_th » T.Năm 07/01/2010 8:18 pm

-> 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
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 người dùng
truongphu
VIP
VIP
Bài viết: 4763
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 517 time

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

Gửi bàigửi bởi truongphu » T.Năm 07/01/2010 8:27 pm

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


Quay về “[VB] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách