-Đúng r do bác. e cug nghĩ no rất đơn giản và cũng đã thử rất nhiều cách khác nhau nhưng không dcNó có thể rất giản dị nhưng cũng có thể rất phức tạp.
- Nếu tính tất cả các textbox không chừa cái nào thì dùng vòng lặp duyệt tất cả các controls trong form, cái nào kiểu là textbox thì tính
- Nếu chỉ tính một số textbox thì phải lập mọt danh sách cho vòng lặp duyệt theo danh sách đó.
- Nếu cần kiểm soát cộng được bao nhiêu cái thì code đồng thời phải ghi lại danh sách các textbox được tính trong tổng và các textbox phải chừa ra vì tính không được. Ví dụ textbox A chứa số 123,45 thay vì 123.45 thì tính đâu có được!
Bạn không có file thì tôi không thể viết được bất cứ code nào cảbác có thể cho e xin cái cú pháp như thế nào được khong bác
- ở cái cmd tính tổng. hiện tại e dang dùng nút control để tính. giờ e mún no nhảy tính tổng tự động mỗi khi mình nhập số vào các textbox thi fai lam sao ạ !!! .Bác xem file đính kèm nhéBạn không có file thì tôi không thể viết được bất cứ code nào cả
Cho thêm code này vào- ở cái cmd tính tổng. hiện tại e dang dùng nút control để tính. giờ e mún no nhảy tính tổng tự động mỗi khi mình nhập số vào các textbox thi fai lam sao ạ !!! .Bác xem file đính kèm nhé
Private Function MakeSum()
Dim idx As Long, dVal As Double, ctr As Control
For idx = 1 To 4
Set ctr = Me.Controls("tb0" & idx)
If IsNumeric(ctr.Text) Then dVal = dVal + CDbl(ctr.Text)
Next
MakeSum = dVal
End Function
Private Sub tb01_Change()
Me.tbtt.Text = MakeSum
End Sub
Private Sub tb02_Change()
Me.tbtt.Text = MakeSum
End Sub
Private Sub tb03_Change()
Me.tbtt.Text = MakeSum
End Sub
Private Sub tb04_Change()
Me.tbtt.Text = MakeSum
End Sub
Được rồi bác ơi. e cảm ơn bác nhiều lắm. cái nay cao siêu quá e không biếtCho thêm code này vào
Mã:Private Function MakeSum() Dim idx As Long, dVal As Double, ctr As Control For idx = 1 To 4 Set ctr = Me.Controls("tb0" & idx) If IsNumeric(ctr.Text) Then dVal = dVal + CDbl(ctr.Text) Next MakeSum = dVal End Function Private Sub tb01_Change() Me.tbtt.Text = MakeSum End Sub Private Sub tb02_Change() Me.tbtt.Text = MakeSum End Sub Private Sub tb03_Change() Me.tbtt.Text = MakeSum End Sub Private Sub tb04_Change() Me.tbtt.Text = MakeSum End Sub
Được rồi bác ơi. e cảm ơn bác nhiều lắm. cái nay cao siêu quá e không biếtCho thêm code này vào
Mã:Private Function MakeSum() Dim idx As Long, dVal As Double, ctr As Control For idx = 1 To 4 Set ctr = Me.Controls("tb0" & idx) If IsNumeric(ctr.Text) Then dVal = dVal + CDbl(ctr.Text) Next MakeSum = dVal End Function Private Sub tb01_Change() Me.tbtt.Text = MakeSum End Sub Private Sub tb02_Change() Me.tbtt.Text = MakeSum End Sub Private Sub tb03_Change() Me.tbtt.Text = MakeSum End Sub Private Sub tb04_Change() Me.tbtt.Text = MakeSum End Sub
- Vì mấy textboxes bạn cần xét nó có tên là tb01, tbo2, tb03 và tb04. Để ý con số thứ tự ở cuối là từ 1 đến 4 nên tôi đã dùng vòng lập duyệt từ 1 đến 4 ---> For idx = 1 To 4Được rồi bác ơi. e cảm ơn bác nhiều lắm. cái nay cao siêu quá e không biết
Bác co thể giải thích them cho e biết nghĩa của cai dòng này dc không ạ !!
Dim idx As Long, dVal As Double, ctr As Control
For idx = 1 To 4
Set ctr = Me.Controls("tb0" & idx)
If IsNumeric(ctr.Text) Then dVal = dVal + CDbl(ctr.Text)
Next
MakeSum = dVal
Bài đã được tự động gộp:
Được rồi bác ơi. e cảm ơn bác nhiều lắm. cái nay cao siêu quá e không biết
Bác co thể giải thích them cho e biết nghĩa của cai dòng này dc không ạ !!
Dim idx As Long, dVal As Double, ctr As Control
For idx = 1 To 4
Set ctr = Me.Controls("tb0" & idx)
If IsNumeric(ctr.Text) Then dVal = dVal + CDbl(ctr.Text)
Next
MakeSum = dVal
- Có mấy từ bác viết tắc e không hiểu được
- vã lại đó là vòng lặp đối với 1 số. ( 1 To 9). jo minh mún lam 2 chữ số thì fai sữa như thế nạo ạ ( 1 To 21)
For idx = 1 to 15
Set ctr = Me.Controls("tb" & Right("0" & idx, 2))
.....
For idx = 1 to 15
Set ctr = Me.Controls("tb" & Format(idx, "00"))
.....
- Được rồi bác ạ. e cảm ơn bac nhiều lắm- Vì mấy textboxes bạn cần xét nó có tên là tb01, tbo2, tb03 và tb04. Để ý con số thứ tự ở cuối là từ 1 đến 4 nên tôi đã dùng vòng lập duyệt từ 1 đến 4 ---> For idx = 1 To 4
- Dùng phép nối chuỗi, nối "tb0" và biến idx để có được tên các textboxes ---> "tb0" & idx
- Lấy đối tượng textbox dựa vào tên đã lấy trước đó ---> Set ctr = Me.Controls("tb0" & idx)
- Có được đối tượng textbox rồi, giờ chỉ việc lấy giá trị của nó thôi ---> CDbl(ctr.Text)
- Tiếp theo cộng dồn ---> dVal = dVal + CDbl(ctr.Text)
- Lấy kết quả sau cùng ---> MakeSum = dVal
Hết!
--------------
Muốn làm với 2 chữ số thì "chơi chiêu". Ví dụ:
HoặcMã:For idx = 1 to 15 Set ctr = Me.Controls("tb" & Right("0" & idx, 2)) .....
Mã:For idx = 1 to 15 Set ctr = Me.Controls("tb" & Format(idx, "00")) .....
Private Sub cmdtt_click()
Dim a As Long, b As Long, c As Long, d As Long, e As Long, f As Long, g As Long, h As Long, i As Long, l As Long, m As Long
Dim n As Long, o As Long, u As Long, t As Long, r As Long, W As Long, q As Long, p As Long, v As Long, x As Long
If Me!tb01 <> "" Then
a = Me!tb01.Value
Else
a = 0
End If
If Me!tb02 <> "" Then
b = Me!tb02.Value
Else
b = 0
End If
If Me!tb03 <> "" Then
c = Me!tb03.Value
Else
c = 0
End If
If Me!tb04 <> "" Then
d = Me!tb04.Value
Else
d = 0
If Me!tb05 <> "" Then
e = Me!tb04.Value
Else
e = 0
End If
If Me!tb06 <> "" Then
f = Me!tb06.Value
Else
f = 0
End If
If Me!tb07 <> "" Then
g = Me!tb07.Value
Else
g = 0
End If
If Me!tb08 <> "" Then
h = Me!tb08.Value
Else
h = 0
End If
If Me!tb09 <> "" Then
i = Me!tb09.Value
Else
i = 0
End If
If Me!tb10 <> "" Then
l = Me!tb10.Value
Else
l = 0
End If
If Me!tb11 <> "" Then
m = Me!tb11.Value
Else
m = 0
End If
If Me!tb12 <> "" Then
n = Me!tb12.Value
Else
n = 0
End If
If Me!tb13 <> "" Then
o = Me!tb13.Value
Else
o = 0
End If
If Me!tb14 <> "" Then
u = Me!tb14.Value
Else
u = 0
End If
If Me!tb15 <> "" Then
t = Me!tb15.Value
Else
t = 0
End If
If Me!tb16 <> "" Then
r = Me!tb16.Value
Else
r = 0
End If
If Me!tb17 <> "" Then
W = Me!tb17.Value
Else
W = 0
End If
If Me!tb18 <> "" Then
q = Me!tb18.Value
Else
q = 0
End If
If Me!tb19 <> "" Then
p = Me!tb19.Value
Else
p = 0
End If
If Me!tb20 <> "" Then
v = Me!tb20.Value
Else
v = 0
End If
If Me!Tb21 <> "" Then
x = Me!Tb21.Value
Else
x = 0
End If
End If
Me!tbtt = a + b + c + d + e + f + g + h + i + l + m + n + o + u + t + r + W + q + p + v + x
End Sub
Private Sub cmdxoa_click()
Me!tbtt = ""
End Sub
Hi bạn. Thế cho mình hỏi là nếu như 4 textbox thì làm như thế nào vậy, mình cũng đang cần phần này.code cho textbox1
code cho textbox2Mã:Private Sub TextBox1_Change() Dim n As Long, m As Long, Kq As Long n = TextBox1.Value If TextBox2 <> "" Then m = TextBox2.Value Else m = 0 End If TextBox3.Value = n + m End Sub
Textbox3 sẽ tự nhảy kết quả!!!!!đúng theo ý bạn chưa???Mã:Private Sub TextBox2_Change() Dim n As Long, m As Long, Kq As Long n = TextBox2.Value If TextBox1 <> "" Then m = TextBox1.Value Else m = 0 End If TextBox3.Value = n + m End sub