Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Thủ Thuật] Ẩn record trong table theo ngày tháng
#1
Hi cả nhà. Mình đang có vấn đề là số record trong table là rất lớn. Do đó mình muốn lock những record của năm cũ từ ngày đến ngày. Khi thực hiện lock thì toàn bộ record này sẽ ẩn hết trên form. Ví dụ khi mở form có liên kết đến record trong table thì tổng số record là 10.000, sau khi lock trên form chỉ hiện thị là 100 chẳng hạn. Trong table mình có thiết kế 1 trường yes/no cho việc block data. vậy khi mình thiết kế 1 form để lock dữ liệu thì thủ tục cụ thể như nào các bạn. Có ai làm được rồi chia sẻ giúp mình nhé. thanks in advance
Chữ ký của tvn_hut Xin chào, mình là Dameaccess, Tham gia http://thuthuataccess.com/forum từ ngày 06-06 -13.
Reply
Những người đã cảm ơn
#2
Theo như câu hỏi thì bạn cần khóa (lock) các mẫu tin (record) theo ngày tháng vậy thì chắc chắn cấu trúc bảng (Table) của bạn phải có 1 trường (Field) khiểu Date để ghi nhận rồi cho nên theo ý tôi thì ta không cần phải đặt thêm 1 trường Yes/No làm gì cho tốn bộ nhớ.
Giả sử Table của bạn tên là Dulieu và trường Ngay có kiểu Date, bạn cần khóa các mẫu tin của năm 2015 trở về trước, trong sự kiện Onload của form bạn viết mã lệnh như sau:

Private Sub Form_Load()
 Me.Record Source="Select * from Dulieu Where Ngay>=#01/01/2016#"
 Me.Requery
End Sub
Chữ ký của lmthu Xin chào, mình là lmthu, Tham gia http://thuthuataccess.com/forum từ ngày 04-07 -14.
Reply
Những người đã cảm ơn tvn_hut
#3
(18-04-16, 05:06 PM)lmthu Đã viết: Theo như câu hỏi thì bạn cần khóa (lock) các mẫu tin (record) theo ngày tháng vậy thì chắc chắn cấu trúc bảng (Table) của bạn phải có 1 trường (Field) khiểu Date để ghi nhận rồi cho nên theo ý tôi thì ta không cần phải đặt thêm 1 trường Yes/No làm gì cho tốn bộ nhớ.
Giả sử Table của bạn tên là Dulieu và trường Ngay có kiểu Date, bạn cần khóa các mẫu tin của năm 2015 trở về trước, trong sự kiện Onload của form bạn viết mã lệnh như sau:

Private Sub Form_Load()
 Me.Record Source="Select * from Dulieu Where Ngay>=#01/01/2016#"
 Me.Requery
End Sub

Mình có thử như cách của bạn. Nhưng về mặt hệ thống thì chưa OK lắm. nếu có nhiều form link tới table thì lại phải làm thủ tục cho tất cả form. Mình muốn tk 1 form với việc xác nhận Lock data từ ngày này đến ngày. và khi muốn unlock thì cũng chọn khoảng thời gian muốn unlock. làm như vậy nó sẽ đồng bộ toàn bộ dữ liệu. Các bạn khác giúp mình nhé
Chữ ký của tvn_hut Xin chào, mình là Dameaccess, Tham gia http://thuthuataccess.com/forum từ ngày 06-06 -13.
Reply
Những người đã cảm ơn
#4
Thông thường giống như các ứng dụng quản lý bán hàng, những sản phẩm nào không còn bán nữa thì đánh dấu nó là "InActive". Đối với file của bạn thì dùng Field [InActive] kiểu Yes/No là được rồi. Khi muốn "Inactive" nó thì dùng Update Query, cập nhật fieldld này thành "YES". Trong các truy vấn sau này thì thêm điều kiện là [InActive]=No để chỉ lọc những records còn hoạt động thôi.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn tvn_hut
#5
(21-04-16, 10:06 AM)ongke0711 Đã viết: Thông thường giống như các ứng dụng quản lý bán hàng, những sản phẩm nào không còn bán nữa thì đánh dấu nó là "InActive". Đối với file của bạn thì dùng Field [InActive] kiểu Yes/No là được rồi. Khi muốn "Inactive" nó thì dùng Update Query, cập nhật fieldld này thành "YES". Trong các truy vấn sau này thì thêm điều kiện là [InActive]=No để chỉ lọc những records còn hoạt động thôi.
Cám ơn ongke711 nhé. Trong các truy vấn thì mình chưa hiểu lắm, vì nếu form lấy dữ liệu từ bảng mình phải lập trình cho nó theo sự kiện nào. Bạn có thể nói rõ hơn không. Mình chưa hiểu cấu cuối là sẽ làm như nào: Trong các truy vấn sau này thì thêm điều kiện là [InActive]=No để chỉ lọc những records còn hoạt động thôi.
Chữ ký của tvn_hut Xin chào, mình là Dameaccess, Tham gia http://thuthuataccess.com/forum từ ngày 06-06 -13.
Reply
Những người đã cảm ơn
#6
(18-04-16, 11:43 AM)tvn_hut Đã viết: Do đó mình muốn lock những record của năm cũ từ ngày đến ngày.
Khi thực hiện lock thì toàn bộ record này sẽ ẩn hết trên form.

Ví dụ khi mở form có liên kết đến record trong table thì tổng số record là 10.000, sau khi lock trên form chỉ hiện thị là 100 chẳng hạn.

Trong table mình có thiết kế 1 trường yes/no cho việc block data.

vậy khi mình thiết kế 1 form để lock dữ liệu thì thủ tục cụ thể như nào các bạn.

Bạn lmthu và [b][b]ongke0711 đã trả lời đúng ý bạn rồi, để mình làm Demo và code ngắn gọn.[/b][/b]

Trả lời:

Code sử dụng:
Nút khóa
Mã PHP:
Private Sub cmdUnlock_Click()
DoCmd.SetWarnings False
DoCmd
.RunSQL "UPDATE tbBanhang SET tbBanhang.Lock = No WHERE (((tbBanhang.Thoigian) Between [Tungay] And [Denngay]));"
Me.lstBanhang.Requery
End Sub 


Nút mở khóa
Mã PHP:
Private Sub txtKhoa_Click()
DoCmd.SetWarnings False
DoCmd
.RunSQL "UPDATE tbBanhang SET tbBanhang.Lock = Yes WHERE (((tbBanhang.Thoigian) Between [Tungay] And [Denngay]));"
Me.lstBanhang.Requery
End Sub 

Chú thích:
+ tbBanhang là table gồm các cột (Stt, Thoigian, Lock)
+ [Tungay], [Denngay]: sẽ hiện khi nhất nút, ta điền tay vào: ví dụ 01/01/2016

Demo đính kèm phía dưới

Thân mến


File đính kèm
.zip   LockUnlockRecode.zip (Kích cỡ: 12.8 KB / Tải về: 16)
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn tvn_hut
#7
(21-04-16, 09:56 PM)maidinhdan Đã viết:
(18-04-16, 11:43 AM)tvn_hut Đã viết: Do đó mình muốn lock những record của năm cũ từ ngày đến ngày.
Khi thực hiện lock thì toàn bộ record này sẽ ẩn hết trên form.

Ví dụ khi mở form có liên kết đến record trong table thì tổng số record là 10.000, sau khi lock trên form chỉ hiện thị là 100 chẳng hạn.

Trong table mình có thiết kế 1 trường yes/no cho việc block data.

vậy khi mình thiết kế 1 form để lock dữ liệu thì thủ tục cụ thể như nào các bạn.

Bạn lmthu và [b][b]ongke0711 đã trả lời đúng ý bạn rồi, để mình làm Demo và code ngắn gọn.[/b][/b]

Trả lời:

Code sử dụng:
Nút khóa
Mã PHP:
Private Sub cmdUnlock_Click()
DoCmd.SetWarnings False
DoCmd
.RunSQL "UPDATE tbBanhang SET tbBanhang.Lock = No WHERE (((tbBanhang.Thoigian) Between [Tungay] And [Denngay]));"
Me.lstBanhang.Requery
End Sub 


Nút mở khóa
Mã PHP:
Private Sub txtKhoa_Click()
DoCmd.SetWarnings False
DoCmd
.RunSQL "UPDATE tbBanhang SET tbBanhang.Lock = Yes WHERE (((tbBanhang.Thoigian) Between [Tungay] And [Denngay]));"
Me.lstBanhang.Requery
End Sub 

Chú thích:
+ tbBanhang là table gồm các cột (Stt, Thoigian, Lock)
+ [Tungay], [Denngay]: sẽ hiện khi nhất nút, ta điền tay vào: ví dụ 01/01/2016

Demo đính kèm phía dưới

Thân mến

Bạn maidinhdan ơi. Cám ơn bạn nhiều nhé. Khi mình lock như vậy thì các form sử dụng dữ liệu bảng đó chỉ dùng được các record không lock fk. Vì với code bạn viết mình chỉ thấy hiện thị lock theo trạng thái yes/no trên table. không biết trên form có cần khai báo 1 thủ tục nào không nhỉ. vì mình không sử dụng update query để làm control source cho form. mà lấy trực tiếp dữ liệu từ table luôn
Chữ ký của tvn_hut Xin chào, mình là Dameaccess, Tham gia http://thuthuataccess.com/forum từ ngày 06-06 -13.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Thủ Thuật] [Shared Code- PhầnII]Chọn ngày tháng bằng click chuột [No Calendar] maidinhdan 13 537 30-11-16, 11:45 AM
Bài mới nhất: ongke0711
  [Thủ Thuật] Demo_Chọn ngày tháng bằng nút (No Calender Tiếng việt) maidinhdan 7 1,399 25-06-16, 12:44 AM
Bài mới nhất: zinzin8x
  [Thủ Thuật] Demo Liệt kê số lượng User đang mở table nào maidinhdan 9 1,315 09-06-16, 09:01 AM
Bài mới nhất: nguyenhungcuong
  Lấy về số seri CPU, ổ cứng MainBoard trong Access Noname 33 12,292 08-06-16, 11:23 PM
Bài mới nhất: maidinhdan
  Hàm đọc số dùng mã Unicode trong Access Noname 28 11,700 23-03-16, 11:45 PM
Bài mới nhất: thiennamlong

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ