-
Tạo hiệu ứng đổi màu liên tục cho textbox
gaubu117 > 08-10-15, 09:47 AM
Hiện mình đang làm một bảng thông báo theo thời gian thực trên Form.
Tổng cộng có 7 cột và 50 dòng.
Mỗi cột có thời gian cách nhau tùy ý : ví dụ 7h30 - 8h20 - 9h10 - 9h50 - 10h:00
Yêu cầu là khi thời gian thực rơi trong cột nào thì text box ô đó sẽ đổi màu xanh, đỏ , các ô còn lại không thay đổi và tuan tự như vậy.
Các bạn giúp mình với -
RE: Tạo hiệu ứng đổi màu liên tục cho textbox
tranthanhan1962 > 08-10-15, 01:46 PM
(08-10-15, 09:47 AM)gaubu117 Đã viết: Hiện mình đang làm một bảng thông báo theo thời gian thực trên Form.
Tổng cộng có 7 cột và 50 dòng.
Mỗi cột có thời gian cách nhau tùy ý : ví dụ 7h30 - 8h20 - 9h10 - 9h50 - 10h:00
Yêu cầu là khi thời gian thực rơi trong cột nào thì text box ô đó sẽ đổi màu xanh, đỏ , các ô còn lại không thay đổi và tuan tự như vậy.
Các bạn giúp mình với
Vì yêu cầu của bạn là đổi màu cột nên không cần quan tâm đến số lượng dòng, cột chính là các textbox.
Cách xử lý:
Tạo một Continuous Forms với các textbox1, textbox2, textbox3, textbox4, textbox5, textbox6, textbox7.
Giả sử bạn muốn 7 cột đổi màu nền màu đỏ theo các giờ như sau: 7h30 - 8h20 - 9h10 - 9h50 - 10h:00 , 2h chiều - 3h chiều - 4h chiều - 5h chiều, các giờ còn lại sẽ có nền trắng.
Code
Mã:Option Compare Database
Option Explicit
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub
Private Sub Form_Timer()
Select Case Time()
Case #7:30:00 AM# To #8:20:00 AM#
cot1.BackColor = 255
cot2.BackColor = 16777215
cot3.BackColor = 16777215
cot4.BackColor = 16777215
cot5.BackColor = 16777215
cot6.BackColor = 16777215
cot7.BackColor = 16777215
Case #8:20:00 AM# To #9:10:00 AM#
cot1.BackColor = 16777215
cot2.BackColor = 255
cot3.BackColor = 16777215
cot4.BackColor = 16777215
cot5.BackColor = 16777215
cot6.BackColor = 16777215
cot7.BackColor = 16777215
Case #9:10:00 AM# To #9:50:00 AM#
cot1.BackColor = 16777215
cot2.BackColor = 16777215
cot3.BackColor = 255
cot4.BackColor = 16777215
cot5.BackColor = 16777215
cot6.BackColor = 16777215
cot7.BackColor = 16777215
Case #9:50:00 AM# To #10:00:00 AM#
cot1.BackColor = 16777215
cot2.BackColor = 16777215
cot3.BackColor = 16777215
cot4.BackColor = 255
cot5.BackColor = 16777215
cot6.BackColor = 16777215
cot7.BackColor = 16777215
Case #2:00:00 PM# To #3:00:00 PM#
cot1.BackColor = 16777215
cot2.BackColor = 16777215
cot3.BackColor = 16777215
cot4.BackColor = 16777215
cot5.BackColor = 255
cot6.BackColor = 16777215
cot7.BackColor = 16777215
Case #3:00:00 PM# To #4:00:00 PM#
cot1.BackColor = 16777215
cot2.BackColor = 16777215
cot3.BackColor = 16777215
cot4.BackColor = 16777215
cot5.BackColor = 16777215
cot6.BackColor = 255
cot7.BackColor = 16777215
Case #4:00:00 PM# To #5:00:00 PM#
cot1.BackColor = 16777215
cot2.BackColor = 16777215
cot3.BackColor = 16777215
cot4.BackColor = 16777215
cot5.BackColor = 16777215
cot6.BackColor = 16777215
cot7.BackColor = 255
Case Else
cot1.BackColor = 16777215
cot2.BackColor = 16777215
cot3.BackColor = 16777215
cot4.BackColor = 16777215
cot5.BackColor = 16777215
cot6.BackColor = 16777215
cot7.BackColor = 16777215
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
Me.TimerInterval = 0
End Sub
Mã màu: trắng (16777215), đỏ (255) -
RE: Tạo hiệu ứng đổi màu liên tục cho textbox
ledangvan > 08-10-15, 02:05 PM
Bác phải sửa câu này :
Tạo một Continuous Forms với các textbox1, textbox2, textbox3, textbox4, textbox5, textbox6, textbox
Thành :
Tạo một Continuous Forms với các textbox : Cot1; Cot2. Cot3 ...Cot7 -
RE: Tạo hiệu ứng đổi màu liên tục cho textbox
gaubu117 > 08-10-15, 03:05 PM
Cảm ơn b Tranthanhnhan1962 đã giúp mình, nhưng vấn đề nó khác vì mình chỉ có 6 cột và 50 record.
Nó chính xác như sau
A : 20 - 50 - 15 - 120 -70 - 60
B : 50 - 30 - 40 - 60 - 80 - 120
C : 15 - 40 - 80 - 20 - 90 - 20
A,B,C là các mã hàng
20 , 50 , 15 ... là thông số thời gian tính bằng phút của từng công đoạn ( mỗi mã có 1 thông số riêng và tùy ý - nhưng luôn có 6 thông số này )
Mình làm 1 bảng nhập liệu
Khi nhập mã A và thời gian bắt đầu ( ham Now ) thì query sẽ tính cộng dồn lên
Vd : Thoi gian bắt đầu 20:20:00 08/10/2015 thì tương ứng là
20:40:00 08/10/2015 - 21:30:00 08/10/2015 - 21:45:00 08/10/2015 - 23:45:00 08/10/2015 - 00:45:00 09/10/2015
Do đó, 6 cột tương ứng voi tung dòng re co rd sẽ có thoi gian khác nhau.
Y/cầu là trong khoảng thời gian nào thì te xt bo x đó sẽ nháy xanh, đỏ chứ không phải nguyên cột đổi màu.
Mong duoc cac ban huong dẫn thêm -
RE: Tạo hiệu ứng đổi màu liên tục cho textbox
gaubu117 > 08-10-15, 05:09 PM
Mình đã giải quyết đước vấn đề đổi màu liên tục, đáp ứng điều kiện đưa ra rồi,
Tuy nhiên, form access nó sẽ áp dụng đổi màu cho cả cột trong khi mình chỉ có 1 text box thỏa mãn điều kiện.
Phải làm thế nào để chỉ áp dụng cho đúng ô thỏa mãn đây các bạn -
RE: Tạo hiệu ứng đổi màu liên tục cho textbox
tranthanhan1962 > 08-10-15, 05:48 PM
(08-10-15, 02:05 PM)ledangvan Đã viết: Bác phải sửa câu này :
Sorry! Tại vì mình viết code chay trên khung trả lời không chú ý nên cứ copy dán mà quên kiểm tra lại.
Tạo một Continuous Forms với các textbox1, textbox2, textbox3, textbox4, textbox5, textbox6, textbox
Thành :
Tạo một Continuous Forms với các textbox : Cot1; Cot2. Cot3 ...Cot7 -
RE: Tạo hiệu ứng đổi màu liên tục cho textbox
tranthanhan1962 > 08-10-15, 06:02 PM
(08-10-15, 05:09 PM)gaubu117 Đã viết: Mình đã giải quyết đước vấn đề đổi màu liên tục, đáp ứng điều kiện đưa ra rồi,
Trong trường hợp bạn chỉ xử lý cho một Ô (textbox tại vị trí record nào đó) bạn nghiên cứu thêm bài Thay đổi màu nền các dòng theo điều kiện trên form Continuous và Hỏi cách đánh dấu dòng đã mở hoặc xem để phối hợp hai điều kiện thời gian và điều kiện record để xử lý bằng value của textbox nằm phía dưới. Nếu cần bao nhiêu màu bạn phải có bao nhiêu textbox màu nằm cùng ở phía dưới textbox chính. Khi thỏa điều kiện có màu nào textbox màu đó sẽ có giá trị làm nền màu, các textbox màu còn lại sẽ có giá trị ="".
Tuy nhiên, form access nó sẽ áp dụng đổi màu cho cả cột trong khi mình chỉ có 1 text box thỏa mãn điều kiện.
Phải làm thế nào để chỉ áp dụng cho đúng ô thỏa mãn đây các bạn -
RE: Tạo hiệu ứng đổi màu liên tục cho textbox
gaubu117 > 09-10-15, 02:19 PM
Nhờ gợi ý của b tranthanhnhan1962 mà mình đã giải quyết được vấn đề. Cảm ơn bạn rất nhiều