lethanhnhan
Thành viên chính thức


- Tham gia
- 27/5/07
- Bài viết
- 76
- Được thích
- 249
Chào các bạn,
Tôi nghĩ trên diễn dàn có một vài bài nói về kỹ thuật xử lý dữ liệu nhập vào TextBox. Tôi xin giới thiệu và tổng hợp một số kỹ thuật.
TextBox để làm gì?
Với bản thân tên của Control thì bạn cũng có thể dễ dàng hiểu control này dùng để làm gì. Control này dùng để nhận dữ liệu từ người dùng.
Thuộc tính (Property) mặc định của TextBox là Value
Sự kiện (Even) mặc định của TextBox là Change
Khi dùng TextBox, chúng ta có thể làm cho nó linh động hơn bởi các thuộc tính sau:
Text, MultiLine, WordWrap, AutoSize
_Text: chứa đựng chuổi ký tự được thể hiện trong TextBox.
_MultiLine: TextBox có thể thể hiện nhiều hàng nội dung. Nếu thuộc tính này là False thì chúng ta không thể thể hiện nội dung trên nhiều dòng được.
_WordWrap: tự động xuống hàng nếu nội dung của TextBox dài hơn độ rộng của TextBox.
_AutoSize: Nếu thuộc tính MultiLine là True thì chúng ta mới có thể dùng thuộc tính này.
Các bạn có thể tự tham khảo và thực tập nhiều hơn về các thuộc tính này.
Tôi chỉ xin đưa ra vài ví dụ.
_Dựa vào sự kiện KeyPress để không cho người dùng nhập chữ số:
_Bạn chú ý trong trường hợp người dùng nhập vào dấu "." hay dấu "-" thì sao:
các bạn có thể thêm một vài đọan code vào như sau:
_Bây giờ bạn lại muốn chỉ cho người dùng nhập vào tối đa 10 chữ số thì sao? (tôi không đếm ".", "-")
Bạn thêm đọan code này vào đầu:
_Bây giờ bạn lại múôn người dùng nhập ngày vào TextBox.
Các bạn hãy đưa ra giải pháp. Tôi xin cung cấp cho các bạn hàm tính tổng số ngày của một tháng
_Các bạn lại muốn mỗi lần nhập vào....
Vâng, các bạn hãy cùng nhau chia sẻ các đọan code của mình.
Lê Thanh Nhân
Tôi nghĩ trên diễn dàn có một vài bài nói về kỹ thuật xử lý dữ liệu nhập vào TextBox. Tôi xin giới thiệu và tổng hợp một số kỹ thuật.
TextBox để làm gì?
Với bản thân tên của Control thì bạn cũng có thể dễ dàng hiểu control này dùng để làm gì. Control này dùng để nhận dữ liệu từ người dùng.
Thuộc tính (Property) mặc định của TextBox là Value
Sự kiện (Even) mặc định của TextBox là Change
Khi dùng TextBox, chúng ta có thể làm cho nó linh động hơn bởi các thuộc tính sau:
Text, MultiLine, WordWrap, AutoSize
_Text: chứa đựng chuổi ký tự được thể hiện trong TextBox.
_MultiLine: TextBox có thể thể hiện nhiều hàng nội dung. Nếu thuộc tính này là False thì chúng ta không thể thể hiện nội dung trên nhiều dòng được.
_WordWrap: tự động xuống hàng nếu nội dung của TextBox dài hơn độ rộng của TextBox.
_AutoSize: Nếu thuộc tính MultiLine là True thì chúng ta mới có thể dùng thuộc tính này.
Các bạn có thể tự tham khảo và thực tập nhiều hơn về các thuộc tính này.
Tôi chỉ xin đưa ra vài ví dụ.
_Dựa vào sự kiện KeyPress để không cho người dùng nhập chữ số:
Mã:
[B][FONT="]Private[/FONT][/B][FONT="] [B]Sub[/B] txtDataEntry_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)[/FONT]
[FONT="] Select Case KeyAscii[/FONT]
[FONT="] Case Asc("0") To Asc("9")[/FONT]
[FONT="] 'Chang lam gi ca/Do nothing[/FONT]
[FONT="] Case Else[/FONT]
[FONT="] KeyAscii = 0[/FONT]
[FONT="] End Select[/FONT]
[B][FONT="]End Sub[/FONT][/B]
các bạn có thể thêm một vài đọan code vào như sau:
Mã:
[B][FONT="]Select Case KeyAscii[/FONT][/B]
[B][FONT="] Case Asc("0") To Asc("9")[/FONT][/B]
[B][FONT="] 'Chang lam gi ca[/FONT][/B]
[B][FONT="] Case Asc("-")[/FONT][/B]
[B][FONT="] If InStr(1, Me.txtSoLuong.Text, "-") > 0 Or Me.txtSoLuong.SelStart > 0 Then[/FONT][/B]
[B][FONT="] 'Neu dau tru khong nam o dau chuoi thi khong nhap[/FONT][/B]
[B][FONT="] KeyAscii = 0[/FONT][/B]
[B][FONT="] End If[/FONT][/B]
[B][FONT="] Case Asc(".")[/FONT][/B]
[B][FONT="] If InStr(1, Me.txtSoLuong.Text, ".") > 0 Then[/FONT][/B]
[B][FONT="] 'Neu co dau cham thu hai thi khong nhap[/FONT][/B]
[B][FONT="] KeyAscii = 0[/FONT][/B]
[B][FONT="] End If[/FONT][/B]
[B][FONT="] Case Else[/FONT][/B]
[B][FONT="] 'Cac ky tu khac thi khong cho phep nhap[/FONT][/B]
[B][FONT="] KeyAscii = 0[/FONT][/B]
[B][FONT="] End Select[/FONT][/B]
Bạn thêm đọan code này vào đầu:
Mã:
[B][FONT="]If Len() < 10 Then[/FONT][/B]
[B][FONT="]‘Bạn đặt đọan code ở trên vào đây[/FONT][/B]
[B][FONT="]Else[/FONT][/B]
[B][FONT="] KeyAscii = 0[/FONT][/B]
[B][FONT="]End If[/FONT][/B]
_Bây giờ bạn lại múôn người dùng nhập ngày vào TextBox.
Các bạn hãy đưa ra giải pháp. Tôi xin cung cấp cho các bạn hàm tính tổng số ngày của một tháng
Mã:
[B][FONT="]Function DaysInMonth(ByVal serial_number As Date) As Integer[/FONT][/B]
[B][FONT="]' Tra ve tong so ngay trong mot thang[/FONT][/B]
[B][FONT="] Dim m As Integer, y As Integer[/FONT][/B]
[B][FONT="] m = Month(serial_number)[/FONT][/B]
[B][FONT="] y = Year(serial_number)[/FONT][/B]
[B][FONT="] If m = 12 Then[/FONT][/B]
[B][FONT="] m = 1[/FONT][/B]
[B][FONT="] y = y + 1[/FONT][/B]
[B][FONT="] Else[/FONT][/B]
[B][FONT="] m = m + 1[/FONT][/B]
[B][FONT="] End If[/FONT][/B]
[B][FONT="] DaysInMonth = Day(DateSerial(y, m, 1) - 1)[/FONT][/B]
[B][FONT="]End Function[/FONT][/B]
Vâng, các bạn hãy cùng nhau chia sẻ các đọan code của mình.
Lê Thanh Nhân