Giúp em bẩy lổi form nhập liệu với ạ (1 người xem)

  • Thread starter Thread starter khuong81
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

khuong81

Thành viên mới
Tham gia
19/6/09
Bài viết
20
Được thích
4
Em đã sữa xong form nhập liệu quản lý công trình
- Giờ muốn bẩy lổi nhập liêu các text ngày tháng và text số, nếu nhập không đúng sẽ báo lổi. Ngày tháng thì dd/mm/yyyy
số thì dạng ###.###.###.###
- thêm 1 ô textbox số thứ tự và tự động đánh số tt và điền vào chứ không cho phép gỏ vào
ở ô textbox Tổng dự toán sẽ là tổng tất cả các mục dưới cộng lại chứ không phải đánh vào
- Sữa nút Nhập mới lại là khi nhấn vào nhập mới sẽ mở trường trống và hiện 2 nút nhập liệu và quay lại. Nút Nhập liệu sau khi nhập xong nhấn Nhập liệu để lưu còn nút Quay lại sẽ trở về.
- Tương tự cho nhút Sữa dữ liệu
 

File đính kèm

Em đã sữa xong form nhập liệu quản lý công trình
- Giờ muốn bẩy lổi nhập liêu các text ngày tháng và text số, nếu nhập không đúng sẽ báo lổi. Ngày tháng thì dd/mm/yyyy
số thì dạng ###.###.###.###
...
mình góp ý vấn đề đó trước nhé ! (chủ yếu dùng sự kiện KeyPress, Change, BeforeUpdate)
- định dạng số ###.###.###.### mình kiểm tra thì nó giống với #.##0 (số tiền)
- file đó, Userform do bạn tạo ra + các vấn đề còn lại mình chưa dám "rớ" tới --=0.

bay loi UserForm.jpg
[GPECODE=vb]
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'dung` doi' voi' textbox So' tien`, ko co' so' le~
Select Case KeyAscii
Case 48 To 57 'nhap tu` 0 -> 9
Case Else
KeyAscii = 0
MsgBox ("Nhap so' 0 --> 9"), vbExclamation
End Select
End Sub
[/GPECODE]
[GPECODE=vb]
Private Sub TextBox1_Change() 'dinh. dang. so' tien`
'bi. 1 nhuoc diem? nho? la khi dung` phim' backspace o? ben trong cac' so' se~ bi. Change
'de? tranh' loi~ nho? tren -->> co' the? doi? sang su* kien TextBox1_BeforeUpdate
TextBox1 = Format(TextBox1, "#,##0")
End Sub
[/GPECODE]
[GPECODE=vb]
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'dung` cho textbox la` So' va` so' le~
Select Case KeyAscii
Case 46, 48 To 57 'nhap tu` 0 -> 9 hoac dau' .

'neu lam` viec tren UserForm phai thong nhat' dung` . hoac , --> update xuong' sheet se~ chinh' xac' ve` dinh. dang
Case 44 'doi? dau "," thanh dau "." (neu' co')
KeyAscii = 46

Case Else
KeyAscii = 0
MsgBox ("Nhap so' 0 --> 9") & vbNewLine & ("dau' , hoac ."), vbExclamation
End Select
End Sub
[/GPECODE]
[GPECODE=vb]
'dinh. dang ngay`, thang, nam
Private Sub TextBox3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox3 <> "" Then
If IsDate(TextBox3) = False Then
Cancel = True 'de? tranh' Set focus sang cac' Control khac'
MsgBox "Ngay` phai? co' dang. d/m/yy hoac d-y-yy", vbInformation
TextBox3 = ""
Else
'On Error Resume Next
'hoac chi? can` nhap. ngay` & thang' -> se~ lay' nam hien. tai. theo he. thong' mt
Me.TextBox3 = Format(CDate(Me.TextBox3), "d-m-yyyy")
End If
End If
End Sub
[/GPECODE]
tham khảo thêm: Nhận mã KeyAscii trên form.

Link: https://www.mediafire.com/?99bxwdehzfzcd2w
 
Lần chỉnh sửa cuối:
Upvote 0
- cảm ơn bạn phucbugis rất nhiều, mình sữ dụng bẩy thời gian và số được rồi. Tuy nhiên định dạnh số thì không ổn, ví dụ khi nhập 300000000 ( ba trăm triệu) vào thì nó hiển thị 300.000.000 là rất ok nhưng giá trị ghi vào shet thì chỉ được 300, mất đi 6 số 0,
CÒn các vấn đề khác bạn cố gắng nghiên cứu giúp mình. cảm ơn bạn
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom