-
Thay đổi màu nền các dòng theo điều kiện trên form Continuous
tranthanhan1962 > 31-05-15, 08:10 PM
Trên Form Datasheet chúng ta có thể Conditional Formatting để xử lý. Nhưng Access làm công việc này rất tồi. Khi số lượng record lớn. Mỗi khi mở form là mỗi lần đợi dài cả cổ.
Nhưng nếu dùng form Continuous ta có thể dễ dàng làm việc này
Trên Form này thiết đặt các dòng có giá trị TextBox THU > 0 có nền màu đỏ, các dòng có giá trị TextBox CHI > 0 có nền màu xanh.
Cách xử lý như sau:
Khi thiết kế, ngoài các controls dữ liệu của form ta thêm 2 TextBox như sau:
TextBox1
Fore Color màu xanh
Controls Source = IIf([CHI]>0;"ggggggggggggggggggg";"")
TextBox2
Fore Color màu đỏ
Controls Source = IIf([THU]>0;"ggggggggggggggggggg";"")
Chọn cả hai rồi Format\Sentd to Back. Kế tiếp đổi font chữ của 2 Text box này sang font Webdings. Sau đó thiết đặt Top của các control bằng nhau. Công việc chúng ta đã hoàn thành
Font Webdings của ký tự g là các ô vuông liên tục nên khi có nhiều ký tự g nó sẽ tạo thành một hình vuông màu. Mục đich công việc này là đưa font của hai Text Box 1, 2 làm nền cho các control khác.
Chúng ta chỉ cần cân chỉnh font size để phủ kín chiều cao và số lượng ký tự g để phủ kín chiều ngang.
Với chiêu này. Chúng ta có thể tùy biến với nhiều điều kiện (mỗi điều kiện là một màu). Nếu đưa vào Query chúng ta có thể xử lý các dòng xen kẻ trắng xám căn cứ theo số thứ tự chẳn hoặc lẻ…Mà form hay report chiếm tài nguyên rất nhẹ nên không ảnh hưỡng nhiều đến tốc độ của xử lý cơ sở dữ liệu -
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
tronghieu9792 > 01-06-15, 12:56 AM
thật hay, bạn có thể đính kèm demo thì tuyệt. -
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
tranthanhan1962 > 01-06-15, 01:38 AM
-
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
tranthanhan1962 > 01-06-15, 08:37 AM
-
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
tronghieu9792 > 01-06-15, 11:35 AM
rất cảm ơn sự chia sẽ nhiệt tình của bạn! -
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
Minh Tiên > 02-06-15, 08:36 AM
(01-06-15, 08:37 AM)tranthanhan1962 Đã viết: Demo xen kẻ màu nền tren form
- Vụ này ở office 2007 trở đi đã có hỗ trợ: Property --> Detail --> Format -->Alternate Back Color -->Alternate row --> OK.
- Thanks tranthanhan1962 ! -
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
tranthanhan1962 > 03-06-15, 12:09 AM
(02-06-15, 08:36 AM)Minh Tiên Đã viết:
(01-06-15, 08:37 AM)tranthanhan1962 Đã viết: Demo xen kẻ màu nền tren form
- Vụ này ở office 2007 trở đi đã có hỗ trợ: Property --> Detail --> Format -->Alternate Back Color -->Alternate row --> OK.
- Thanks tranthanhan1962 !
OK. Từ 2007 trở đi ngoài Detail.BackColor Access còn cho thêm Detail.AlternateBackColor.
Phần mình viết chỉ để xử dụng cho access 2003 thôi.
Còn đối với aceess 2007 access chỉ dừng lại ở việc tạo sự luân phiện thay đổi màu nền. Mình đang nghiên cứu việc xử lý code để thay đổi BackColor và AlternateBackColor theo điều kiện cho access 2007 nhưng nghĩ chưa ra. Nếu bạn có ý gì hay thì Minh Tiên post lên để cùng nghiên cứu nhé. Thank -
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
ongke0711 > 01-08-15, 08:53 AM
Đổỉ màu dòng chẳn lẻ.
Em cũng áp dụng theo cách các bác Ân và cách gán số thứ tự cho record của bác MinhTien để làm đổi màu dòng chẳn lẻ trong form.
Conditional formating:
Demo -
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
MTNQ > 27-02-16, 12:29 AM
Ý tưởng về sử dụng một textbox làm nền của bác Ân cũng rất hay, MTNQ góp thêm với bác một cách sử dụng FormatConditions:
-Trong phần Detail của form Continuous:
1/ Thiết lập thuộc tính Back Style của các điều khiển là Transparent
2/Vẽ một TextBox (txtBackGround) phủ kín các điều khiển rồi Send to Back
3/Sử dụng hàm sau để thiết lập FormatConditions cho txtBackGround (Với một hoặc điều kiện kết hợp):
Mã:Function AddFormatConditions2(ctrlBG As Control, strExpression As String, _
Optional lngBackColor As Long = vbRed)
On Error GoTo HandleError
With ctrlBG
.FormatConditions.Delete
.FormatConditions.Add acExpression, , strExpression
.FormatConditions(0).BackColor = lngBackColor
End With
Err_Exit:
Exit Function
HandleError:
MsgBox Err.Description, vbCritical, "Err: AddFormatConditions2"
Resume Err_Exit
End Function
Tải tệp đính kèm:
Demo FormatConditions.rar
P/S: Demo trên MTNQ đã nạp sẵn hơn 100 000 record nhưng chạy cũng rất nhanh (chưa đầy 1s) -
RE: Thay đổi màu nền các dòng theo điều kiện trên form Continuous
ongke0711 > 27-09-16, 11:01 PM
Đang thiết kế 1 form có sử dụng cách format của anh tranthanhnhan1962 nên đào mộ lại post này và chia sẽ thêm một kiểu ứng dụng khác của nó là: Highlight 1 ô nào đó thõa điều kiện được đưa ra.
- Áp dụng cho Continuous form.
- Không cần dùng Conditional Formating (của Access 2007 trở lên).
- Tốc độ theo tôi sẽ nhanh hơn dùng Conditional formating.
Link demo:http://www.mediafire.com/download/2u7n6u...usForm.mdb