tính theo công thức SL* DG thì làm sao

datinh4ever

New Member
Hội viên mới
Tớ có 1 table với 1 ít cl thế này
ID
SoLuong
DonGia
ThanhTien



Trong Form tớ muốn khi tớ nhập SL và DG thì ThanhTien sẽ tự tính theo công thức SL* DG thì làm sao?
 
Ðề: Giúp tớ 1 tí

Đặt On Change của cả SL và DG :
Thanhtien = SL * DG
 
Ðề: Giúp tớ 1 tí

Đặt On Change của cả SL và DG :
Thanhtien = SL * DG

Dùng OnChange nó sẽ thay đổi ngay ứng với từng chữ số gõ vào. Làm như vậy sẽ khiến cho sự kiện được xảy ra liên tục. Kết quả thành tiền bị "nhảy nhảy".

Tốt nhất nên sử dụng BeforeUpdate cho cả hai SL và DG.

Lưu ý: để tránh có kết quả Null, bạn nên định default value cho sl va dg là 0.
 
Ðề: Giúp tớ 1 tí

Dùng OnChange nó sẽ thay đổi ngay ứng với từng chữ số gõ vào. Làm như vậy sẽ khiến cho sự kiện được xảy ra liên tục. Kết quả thành tiền bị "nhảy nhảy".

Tốt nhất nên sử dụng BeforeUpdate cho cả hai SL và DG.

Lưu ý: để tránh có kết quả Null, bạn nên định default value cho sl va dg là 0.

Việc tốt nhất hay tốt nhì nên để người dùng tự quyết định.
Có hàng đống cái event. Cần để vào đâu thì cứ để vào đó.
Một phép tính chả nghĩa lý gì với máy cả. Nó "nhảy nhảy" nhanh gấp hàng trăm lần cái chớp mắt.

Lưu ý: Điều tối quan trọng là
- Cần biết trình tự các event.
- Cần phân biệt tên object và tên field (column) khi viết code.
Thông thường bạn lấy tên text box trùng với tên field nên trong code dễ nhầm giữa SL.value và SL.value <- bạn luôn phân biệt được không cái nào là lấy giá trị của data còn cái nào là lấy giá trị của text box (chưa update xuống data)?

------------
 
Ðề: tính theo công thức SL* DG thì làm sao

:D sorry hỏi thêm câu nữa, onchange build thế nào cho mình một vd cụ thể đi
 
Ðề: Giúp tớ 1 tí

Việc tốt nhất hay tốt nhì nên để người dùng tự quyết định.
Có hàng đống cái event. Cần để vào đâu thì cứ để vào đó.
Một phép tính chả nghĩa lý gì với máy cả. Nó "nhảy nhảy" nhanh gấp hàng trăm lần cái chớp mắt.

Lưu ý: Điều tối quan trọng là
- Cần biết trình tự các event.
- Cần phân biệt tên object và tên field (column) khi viết code.
Thông thường bạn lấy tên text box trùng với tên field nên trong code dễ nhầm giữa SL.value và SL.value <- bạn luôn phân biệt được không cái nào là lấy giá trị của data còn cái nào là lấy giá trị của text box (chưa update xuống data)?

------------

Chắc bạn muontennguoi chưa từng phải lâm vào cảnh gặp một cái máy hơi bị lão thì phải.

Thứ hai, chắc bạn cũng chưa từng đọc qua cái event sequences của các control của Access. Tôi xin phép được ví dụ cho bạn một tí thôi về cái event sequence của Text Box (giản lượt thôi):

Enter (con nháy chuẩn bị vào textbox) --> GotFocus (con nháy đã yên vị trong textbox) --> KeyPress (KeyUp, KeyDown ... người sử dụng có gõ phím) --> Change (dữ liệu trong textbox có thay đổi tạm thời) --> BeforeUpdate (hoàn tất việc thay đổi dữ liệu do nhấn ENTER hoặc TAB hoặc nhấn chuột ra vị trí khác) --> AfterUpdate (đã xác nhận thay đổi dữ liệu) --> Exit (chuẩn bị rời textbox) --> LostFocus (đã ra khỏi textbox).

Trong dãy sequence trên thì các event về Key và Change sẽ lập lại nhiều lần mỗi khi có gõ phím hoặc có thay đổi nội dung trong textbox.

Bây giờ tôi đặt cho bạn một tình huống vui như sau nhé: bạn vào tiệm ăn, mỗi lần bạn mua một món, bạn kêu tính tiền hay là sau khi bạn mua xong các món cần chọn rồi kêu tính tiền một lần?

Tất nhiên có hàng đống event, cũng như ta có thể có hàng đống tiền, nhưng sử dụng nó như thế nào, vào lúc nào cái đó mới quan trọng.

Ngoài ra, cách đặt tên cho control có trùng với fieldname thì cũng chẳng có gì phải lo lắng, vì nếu muốn truy xuất giá trị của field trong một table hoặc query bằng code, bạn phải sử dụng Recordset hoặc TableDef hoặc QueryDef. Lúc đó fieldname sẽ gắn với cái Recordset hoặc TableDef hoặc QueryDef mà nó được triệu gọi, hoàn toàn không trùng lặp với control.

Trên đây chỉ là ý kiến của người già như tôi, chắc lẩm cẩm lắm. Mong bạn thông cảm, và đừng la mắng tôi tội nghiệp.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Kỹ thuật giải trình thanh tra BHXH

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top