Ðề: 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.