hoat > 26-04-23, 04:40 PM
cpucloi > 26-04-23, 05:56 PM
ongke0711 > 27-04-23, 12:18 AM
hoat > 27-04-23, 10:45 AM
(26-04-23, 05:56 PM)cpucloi Đã viết: Bạn lẳng cái demo lên mọi người giúp, nhìn code của bạn hoa hết mắt rồi
Sub tongCP()
Dim a, b, c, d As Integer
If txtTinhtrangthanhtoanTU = "Da thanh toan" Then
a = 0
Else
If txtTinhtrangthanhtoanTU <> "Da thanh toan" And txtDongtienthanhtoan = "VND" Then
a = txtSotientamungVND
Else
If txtTinhtrangthanhtoanTU <> "Da thanh toan" And txtDongtienthanhtoan <> "VND" Then
a = txtSotientamung
If txtTinhtrangthanhtoanL1 = "Da thanh toan" Then
b = 0
Else
If txtTinhtrangthanhtoanL1 <> "Da thanh toan" And txtDongtienthanhtoan = "VND" Then
b = txtSotienthanhtoanL1VND
Else
If txtTinhtrangthanhtoanL1 <> "Da thanh toan" And txtDongtienthanhtoan <> "VND" Then
b = txtSotienthanhtoanL1
If txtTinhtrangthanhtoanL2 = "Da thanh toan" Then
c = 0
Else
If txtTinhtrangthanhtoanL2 <> "Da thanh toan" And txtDongtienthanhtoan = "VND" Then
c = txtSotienthanhtoanL2VND
Else
If txtTinhtrangthanhtoanL2 <> "Da thanh toan" And txtDongtienthanhtoan <> "VND" Then
c = txtSotienthanhtoanL2
If txtTinhtrangthanhtoanL3 = "Da thanh toan" Then
d = 0
Else
If txtTinhtrangthanhtoanL3 <> "Da thanh toan" And txtDongtienthanhtoan = "VND" Then
d = txtSotienthanhtoanL3VND
Else
If txtTinhtrangthanhtoanL3 <> "Da thanh toan" And txtDongtienthanhtoan <> "VND" Then
d = txtSotienthanhtoanL3
txtSotiencanthanhtoanVND = a + b + c + d
txtSotiencanthanhtoanNT = a + b + c + d
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Sub
ongke0711 > 27-04-23, 12:05 PM
(27-04-23, 10:45 AM)hoat Đã viết: Mục đích của mình là tính tổng tiền cho 2 text box: txtSotiencanthanhtoanVND và txtSotiencanthanhtoanNT (do mình có 2 loại tiền là DND và ngoại tệ).
...
Sub tongCP()
Dim a As Long, b As Long, c As Long, d As Long
If txtTinhtrangthanhtoanTU = "Da thanh toan" And txtTinhtrangthanhtoanL1 = "Da thanh toan" And txtTinhtrangthanhtoanL2 = "Da thanh toan" And txtTinhtrangthanhtoanL3 = "Da thanh toan" Then
txtSotiencanthanhtoanVND = 0
txtSotiencanthanhtoanNT = 0
Else
Select Case txtDongtienthanhtoan.Value
Case "VND"
txtSotiencanthanhtoanVND = Nz(txtSotientamungVND) + Nz(txtSotienthanhtoanL1VND) + Nz(txtSotienthanhtoanL2VND) + Nz(txtSotienthanhtoanL3VND)
txtSotiencanthanhtoanNT = 0
Case Else 'NT'
txtSotiencanthanhtoanNT = Nz(txtSotientamung) + Nz(txtSotienthanhtoanL1) + Nz(txtSotienthanhtoanL2) + Nz(txtSotienthanhtoanL3)
txtSotiencanthanhtoanVND = 0
End Select
End If
End Sub
Dim a, b, c, d As Integer
hoat > 27-04-23, 12:36 PM
(27-04-23, 12:05 PM)ongke0711 Đã viết:(27-04-23, 10:45 AM)hoat Đã viết: Mục đích của mình là tính tổng tiền cho 2 text box: txtSotiencanthanhtoanVND và txtSotiencanthanhtoanNT (do mình có 2 loại tiền là DND và ngoại tệ).
...
Bạn thử code này xem.
Mã PHP:Sub tongCP()
Dim a As Long, b As Long, c As Long, d As Long
If txtTinhtrangthanhtoanTU = "Da thanh toan" And txtTinhtrangthanhtoanL1 = "Da thanh toan" And txtTinhtrangthanhtoanL2 = "Da thanh toan" And txtTinhtrangthanhtoanL3 = "Da thanh toan" Then
txtSotiencanthanhtoanVND = 0
txtSotiencanthanhtoanNT = 0
Else
Select Case txtDongtienthanhtoan.Value
Case "VND"
txtSotiencanthanhtoanVND = Nz(txtSotientamungVND) + Nz(txtSotienthanhtoanL1VND) + Nz(txtSotienthanhtoanL2VND) + Nz(txtSotienthanhtoanL3VND)
txtSotiencanthanhtoanNT = 0
Case Else 'NT'
txtSotiencanthanhtoanNT = Nz(txtSotientamung) + Nz(txtSotienthanhtoanL1) + Nz(txtSotienthanhtoanL2) + Nz(txtSotienthanhtoanL3)
txtSotiencanthanhtoanVND = 0
End Select
End If
End Sub
- Không khai báo kiểu:Vì chỉ có cái biến "d" cuối cùng được khai báo kiểu Integer, còn lại là kiểu Variant hết. Kiểu Variant sẽ chiếm bộ nhớ và xử lý sẽ lâu hơn là khai báo tường mình 1 kiểu.Mã:Dim a, b, c, d As Integer
- Máy tính bây giờ khai báo kiểu Long sẽ chạy tối ưu hơn Integer.
- Xem lại các textbox tình trạng thanh toán. Thay vì dùng chuỗi "Da thanh toan" dễ phát sinh sai khi so sánh chuỗi như code ở trên thì đổi qua Number 1, 0 (True/False) sẽ chính xác hơn, nhanh hơn.
ongke0711 > 27-04-23, 12:55 PM
(27-04-23, 12:36 PM)hoat Đã viết: Cảm ơn ongke0711, lúc nãy mình chưa mô tả hết ý, còn các trường hợp khác chứ không phải có 2 trường hợp:
txtTinhtrangthanhtoanTU = "Da thanh toan" And txtTinhtrangthanhtoanL1 <> "Da thanh toan" And txtTinhtrangthanhtoanL2 <> "Da thanh toan" And txtTinhtrangthanhtoanL3 <> "Da thanh toan"
txtSotiencanthanhtoanVND = Nz(txtSotienthanhtoanL1VND) + Nz(txtSotienthanhtoanL2VND) + Nz(txtSotienthanhtoanL3VND)
txtTinhtrangthanhtoanTU = "Da thanh toan" And txtTinhtrangthanhtoanL1 = "Da thanh toan" And txtTinhtrangthanhtoanL2 <> "Da thanh toan" And txtTinhtrangthanhtoanL3 <> "Da thanh toan"
txtSotiencanthanhtoanVND = Nz(txtSotienthanhtoanL2VND) + Nz(txtSotienthanhtoanL3VND)
Muốn thêm các trường hợp như vậy thì mình phải thêm như thế nào.