• Có thể tạo dấu , ngăn cách 3 chữ cuối trong textbox không?
  • Có thể tạo dấu , ngăn cách 3 chữ cuối trong textbox không?

    mieuhoa > 15-11-15, 07:53 PM

    Hi các bạn, mình tạo chương trình quản lý nhân viên, có 1 trường là số điện thoại, nhưng mình không để trường này là Number mà để Text, mình khóa dữ liệu nhập bằng code như sau (chỉ cho nhập số), thay vì để Format là Standrad
    Select Case KeyAscii

    Case 48 To 57
      If KeyAscii = 46 And InStr(1, TextBox1, ".") > 0 Then KeyAscii = 0
    Case Else
      KeyAscii = 0
    End Select

    Nhưng mình muốn có dấu , ngăn cách 6 số cuối (mỗi 3 số) từ phải sang trái cho dễ đọc khi nhập số điện thoại, không biết có thể làm được không? 
    Mình cũng đã dùng thử 1 số hàm có Input mark #,##, nhưng mà số 0 đầu tiên bị mất tiêu.

    Bạn nào biết thì hướng dẫn dùm mình nha.
    Cảm ơn
  • RE: Có thể tạo dấu , ngăn cách 3 chữ cuối trong textbox không?

    mieuhoa > 16-11-15, 11:08 PM

    Không có cách nào sao các bạn?
    Không cần dấu "," cũng được, có khoảng trắng ra cũng được, cho dễ đọc thôi à, tránh bấm nhầm số.
    Ai biết chỉ dùm mình với.
  • RE: Có thể tạo dấu , ngăn cách 3 chữ cuối trong textbox không?

    ongke0711 > 16-11-15, 11:28 PM

    Code theo yêu cầu của bạn đây.
    Theo code này, khi bạn nhập số điện thoại sẽ tự động hiển thị dưới dạng [0000-000-000].
    Cách làm:
    - Giả sử textbox nhập số điện thoại của bạn có name là [txtSoDT].
    - Bạn thêm một textbox nữa, ví dụ: txtEmail. Cái này để phục vụ cho thủ thuật trong code. Bạn có thể lấy cái textbox khác bất kỳ có trên cái form nhập số điện thoại (Chú ý đổi tên txtEmail trong code thành name của textbox của đó).
    - Tạo event procedure trong Event - On Key Up của textbox số điện thoại.
    - Trong Form Properties -> Event -> Key Preview: chọn Yes.
    - Copy đoạn code bên dưới vào event Key up.

    Mã PHP:
    Private Sub txtSoDT_KeyUp(KeyCode As IntegerShift As Integer)
       Dim vitri As Variant
       Dim str 
    As StringstrGoc As String
       
       vitri 
    = Array(Me.txtSoDT.SelStartMe.txtSoDT.SelLength)
       Me.txtEmail.SetFocus   'Di chuyen qua field khac de luu du lieu cua textbox so dien thoai
       Me.txtSoDT.SetFocus
       
       '
    Tra con tro ve vi tri cu
       Me
    .txtSoDT.SelStart vitri(0)
       Me.txtSoDT.SelLength vitri(1)
       
       If KeyCode 
    <> vbKeyBack Or KeyCode <> vbKeyDelete Then
           If Len
    (Me.txtSoDT) > 6 Then
               strGoc 
    Replace(Me.txtSoDT"-""")
               str Left(strGocLen(strGoc) - 6) & "-" Left(Right(strGoc6), 3) & "-" Right(strGoc3)
               Me.txtSoDT str
               Me
    .txtSoDT.SelStart vitri(0) + 2     'Len(Me.txtSoDT)
               Me.txtSoDT.SelLength = vitri(1) + 2    '
    Len(Me.txtSoDT)
           End If
       End If
    End Sub 
  • RE: Có thể tạo dấu , ngăn cách 3 chữ cuối trong textbox không?

    mieuhoa > 17-11-15, 12:16 AM

    Cảm ơn bạn [b]ongke0711[/b] nhiều lắm, đúng ý mình rồi. Nhờ bạn mình đã sửa được chương trình của mình cho dễ sử dụng hơn rồi. 
    Thank you [b]ongke0711[/b]