Kiểm tra ngày sinh

Liên hệ QC

khunglongcodon

Thành viên thường trực
Tham gia
24/11/06
Bài viết
222
Được thích
100
Nghề nghiệp
Kế toán
Em muốn ngày sinh nhập vào kiểu gì cũng chuyển thành kiểu ngày tháng
Nhưng code không chạy.
Nhờ các anh chị xem giùm em với.&&&%$R
 

File đính kèm

Em muốn ngày sinh nhập vào kiểu gì cũng chuyển thành kiểu ngày tháng
Nhưng code không chạy.
Nhờ các anh chị xem giùm em với.&&&%$R
Nhập kiểu gì nghĩa là sao?
Bạn thử liệt kê tất cả các kiểu nhập ngày tháng của người dùng tôi xem nào
Chứ nhìn code thì thấy... thua rồi ---> Lằng nhằng
 
Upvote 0
Em muốn là người dùng nhập ngày 9.1.87,9-1-87,9/1/87 đều trả về 9/1/87 hết đó anh.
:D
Thanks anh trước.
 
Upvote 0
dạ có anh, nếu nhập theo 4,6,8 thì tính riêng. Nhưng em đang bí chỗ kí tự -,/,. ạ.:D
 
Upvote 0
Theo tôi nghĩ bạn nên đưa ra tập ký tự phân cách trước đã, sau đó mới code cho bạn đầy đủ các trường hợp được
 
Upvote 0
dạ có anh, nếu nhập theo 4,6,8 thì tính riêng. Nhưng em đang bí chỗ kí tự -,/,. ạ.:D
Tạm dùng cái này xem:
PHP:
Private Sub txtNgaySinh_AfterUpdate()
  Dim NgaySinh As Date, NgaySinhTxt As String, Arr
  On Error GoTo ExitSub
  NgaySinhTxt = txtNgaySinh.Value
  NgaySinhTxt = Replace(txtNgaySinh, "-", "/")
  NgaySinhTxt = Replace(txtNgaySinh, ".", "/")
  If InStr(NgaySinhTxt, "/") Then
    Arr = Split(NgaySinhTxt, "/")
    NgaySinh = DateSerial(Arr(2), Arr(1), Arr(0))
  Else
    Select Case Len(txtNgaySinh)
      Case 4
        NgaySinh = DateSerial(Right(txtNgaySinh, 2), Mid(txtNgaySinh, 2, 1), Left(txtNgaySinh, 1))
      Case 5
        MsgBox "khong nhap 5 ky so, vui long nhap dang dmyy hoac ddmmyy hoac ddmmyyyy", vbOKOnly
        txtNgaySinh.Value = ""
        txtNgaySinh.SetFocus
        Exit Sub
      Case 6
        NgaySinh = DateSerial(Right(txtNgaySinh, 2), Mid(txtNgaySinh, 3, 2), Left(txtNgaySinh, 2))
      Case 8
        NgaySinh = DateSerial(Right(txtNgaySinh, 4), Mid(txtNgaySinh, 3, 2), Left(txtNgaySinh, 2))
    End Select
  End If
  If CLng(NgaySinh) Then txtNgaySinh = Format(NgaySinh, "dd/mm/yyyy"): Exit Sub
ExitSub:
  MsgBox "Nhap sai ngay!"
  txtNgaySinh.Value = ""
End Sub
VBA có hàm InStrReplace, mắc gì phải xài WorksheetFunction.SearchWorksheetFunction.Substitute (nhất là hàm SEARCH, nếu không tìm thấy, nó bị lỗi thì tính làm sao?)
 
Upvote 0
Tôi xin góp ý thêm về việc nhập ngày tháng này!
Thực chất nhập liệu ngày tháng mà dùng TextBox là thất sách... vừa mất công nhập vừa lo sợ người ta nhập sai
Chỉ bạn cách khác: Dùng Calendar

untitled1.JPG
untitled2.JPG


Code đơn giản vô cùng:
PHP:
Dim DateVal As Long
Private Sub Calendar1_Click()
  DateVal = CLng(Me.Calendar1.Value)
  ComboBox1.Text = Format(DateVal, "dd/mm/yyyy")
  Me.Calendar1.Visible = False
End Sub
PHP:
Private Sub ComboBox1_DropButtonClick()
  With Me.Calendar1
    If .Visible = False Then .Visible = True
  End With
End Sub
Muốn tính toán, ta lấy giá trị của biến DateVal để tính (còn ComboBox để để hiển thị)
 

File đính kèm

Upvote 0
Dạ, em mới tập tành với VBA nên em không biết 2 hàm đó ạ. Xin cảm ơn anh nhiều. Em sẽ test liền. Còn cái calendar em có thấy anh trả lời ở một bài khác rồi ạ, khổ nỗi máy em bị lỗi, em chưa qua máy khác chép được nên mới dùng cái textbox ạ. :D
 
Upvote 0
Còn cái calendar em có thấy anh trả lời ở một bài khác rồi ạ, khổ nỗi máy em bị lỗi, em chưa qua máy khác chép được nên mới dùng cái textbox ạ. :D
Xin hỏi là lỗi gì? Có phải lỗi Additional Control không hiển thị không? Nếu đúng thế thì xem bài này để giải quyết:
http://www.giaiphapexcel.com/forum/...t-tình-trạng-Additional-Controls-mất-tác-dụng
 
Upvote 0
Dạ, đúng là lỗi đó. Em cảm ơn anh nhiều ạ. :D
 
Upvote 0
Web KT

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

Back
Top Bottom