Xin giúp nhập dữ liệu số vào trong textbox

  • Thread starter startblack
  • Ngày gửi
S

startblack

Sơ cấp
27/2/09
7
0
0
Khanh Hoa
Chào cả nhà.
Mình có 1 vấn đề xin hỏi các bạn: mình muốn tạo 1 textbox chỉ để cho nhập số, và mình muốn trong quá trình nhập thì kiểm tra nếu số đến hàng ngàn, triệu, tỷ thì tự động có thêm dấu (.) để phân cách các số cho dễ đọc.
Ví dụ mình nhập vào textbox:
số 1234 thì trong ô textbox sẽ hiễn thị: 1.234
123456789 textbox sẽ hiển thị: 123.456.789
Các thao tác này được thực hiện trong quá trình nhập và kiểm tra.
Có bạn nào giải quyết được vấn đề này xin chỉ giáo giúp mình với.
Cảm ơn nhiều.
 
Khóa học Quản trị dòng tiền
N

nguyenson882000

Guest
21/9/09
2
0
0
64
Tp Hồ Chí Minh
Bạn vào Design View bấm vào textbox đó nhấn F4 trong phần Format bạn chọn Standard
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
Chào cả nhà.
Mình có 1 vấn đề xin hỏi các bạn: mình muốn tạo 1 textbox chỉ để cho nhập số, và mình muốn trong quá trình nhập thì kiểm tra nếu số đến hàng ngàn, triệu, tỷ thì tự động có thêm dấu (.) để phân cách các số cho dễ đọc.
Ví dụ mình nhập vào textbox:
số 1234 thì trong ô textbox sẽ hiễn thị: 1.234
123456789 textbox sẽ hiển thị: 123.456.789
Các thao tác này được thực hiện trong quá trình nhập và kiểm tra.
Có bạn nào giải quyết được vấn đề này xin chỉ giáo giúp mình với.
Cảm ơn nhiều.
1. kiểm tra nhập liệu:
Mã:
Private Sub txtXXX_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If  Not (KeyAscii > 47 And KeyAscii < 59) Then
    Beep
    KeyAscii  = 0
End If
End Sub
2. Hì hì không biết
 
S

startblack

Sơ cấp
27/2/09
7
0
0
Khanh Hoa
Cảm ơn các bạn đã trả lời.
Có ai đã làm được theo y/c trền của mình không. Xin chỉ giáo với.
:015:
 
S

spammail

Guest
Chào cả nhà.
Mình có 1 vấn đề xin hỏi các bạn: mình muốn tạo 1 textbox chỉ để cho nhập số, và mình muốn trong quá trình nhập thì kiểm tra nếu số đến hàng ngàn, triệu, tỷ thì tự động có thêm dấu (.) để phân cách các số cho dễ đọc.
Ví dụ mình nhập vào textbox:
số 1234 thì trong ô textbox sẽ hiễn thị: 1.234
123456789 textbox sẽ hiển thị: 123.456.789
Các thao tác này được thực hiện trong quá trình nhập và kiểm tra.
Có bạn nào giải quyết được vấn đề này xin chỉ giáo giúp mình với.
Cảm ơn nhiều.

Để hiển thị phân cách hàng ngàn, triệu, tỷ thì bạn vào properties của textbox đó-->ở mục Format bạn chọn Standard.
Còn dãy phân cách bạn muốn hiển thì là dấu "." hay ",", vd: 1.234 hay 1,234 là tùy chỉnh của window.
 
S

startblack

Sơ cấp
27/2/09
7
0
0
Khanh Hoa
Ý mình muốn là khi đang nhập liệu trong textbox, lúc mình nhạp đến số hàng ngàn (vd 1234) thì sẽ tự độn thêm dấu "." ngăn cách giữ số 1 và 2 (1.234).
Cách chỉnh trong windows thì mình đã làm được rồi.
 
Đ

ĐỖ SƠN HẢI

Guest
10/10/06
130
0
0
47
Phan Thiết
Thử dùng như sau xem :
trong format dinh dang : #,###
 
S

startblack

Sơ cấp
27/2/09
7
0
0
Khanh Hoa
Mình xin nói rõ ý mình là khi đang nhập liệu tức là khi đang nhập số vào ô textbox. Mình biết rằng cái này lập trình trên VBA với các envent KeyUp, Keydown, keypress. Nhưng mình vẫn chưa làm ra nên lên cầu cứu các bạn.
Có ai biết không ?
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
Mình xin nói rõ ý mình là khi đang nhập liệu tức là khi đang nhập số vào ô textbox. Mình biết rằng cái này lập trình trên VBA với các envent KeyUp, Keydown, keypress. Nhưng mình vẫn chưa làm ra nên lên cầu cứu các bạn.
Có ai biết không ?
À à cái này a, thấy mấy phần mềm cũng có làm cái này nà.
Thử code này xem (tìm trên net á)

Mã:
Option Compare Database

dim CurPos as Integer
Private Sub TxtStandard_Change()
    If  Left(TxtStandard.Text, 1) = "." Then TxtStandard.Text =  Replace(TxtStandard.Text, ".", "", 1, 1)
    If Not  IsNumeric(TxtStandard.Text) Then
        TxtStandard.Text = 0
    Else
        If  TxtStandard.Text <= 0 Then
            TxtStandard.Text = 0
        Else
            If  TxtStandard.Text <> Format(TxtStandard.Text, "##,#") Then
                CurPos  = Len(TxtStandard.Text) - TxtStandard.SelStart
                TxtStandard.Text  = Format(TxtStandard.Text, "##,#")
                TxtStandard.SelStart  = Len(TxtStandard.Text) - CurPos
            End If
        End  If
    End If
End Sub
Private Sub TxtStandard_KeyPress(KeyAscii  As Integer)
    If KeyAscii = 13 Then
        SendKeys "{Tab}"
        KeyAscii  = 0
    Else
        If KeyAscii = vbKeyBack Then
            If  TxtStandard.SelStart > 0 Then
                If  Mid(TxtStandard.Text, TxtStandard.SelStart, 1) = "." Then  TxtStandard.SelStart = TxtStandard.SelStart - 1
            End If
        Else
            If  KeyAscii >= 32 Then
                If Not  IsNumeric(Chr$(KeyAscii)) Then
                    KeyAscii = 0
                Else
                    If  Val(TxtStandard.Text) = 0 Then TxtStandard.SelLength = 1
                End  If
            End If
        End If
    End If
End Sub
Hì hì nói chung phải sửa lại cho đúng ý bạn
 
Sửa lần cuối:

Xem nhiều