Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Ngăn chặn không cho Access tự động lưu record
#1
Chúng ta biết rằng Access luôn tự động lưu lại các record mỗi khi ta nhập mới hoặc sửa đổi. Để ngăn không cho access tự động lưu, muốn lưu phải hỏi trước, nếu đồng ý thì lưu, nếu không thì undo lại giá trị trước khi thay đổi, ta dùng thủ thuật sau của sự kiện BeforeUpdate của form

Mã:
Private Sub Form_BeforeUpdate(Cancel As Integer)

   'If the form data has changed a message is shown asking if
   'the changes should be saved. If the answer is no then
   'the changes are undone

   On Error GoTo BeforeUpdate_Error
  
   If Me.Dirty Then
    'if record has been changed the dirty property
    'is set to true Display message to save the record
      If MsgBox("The record has changed - do you want to save it?", _
      vbYesNo + vbQuestion, "Save Changes") = vbNo Then
         Me.Undo
      End If
   End If

BeforeUpdate_Exit:
   Exit Sub

BeforeUpdate_Error:
   MsgBox Err.Description
   Resume BeforeUpdate_Exit

End Sub
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn khanhduycsgt , Noname , cannguyen , nhannt4 , dtv197 , nmttri , nhoc77 , vocsiit
#2
cái này cũng tương tự như code cho nút Hủy thôi. chỉ khác là bỏ vào sự kiện Form_BeforeUpdate, dù sao cũng thanks bạn!
Chữ ký của khanhduycsgt Chào Guest, có mánh nào hay thì chia sẻ cho mình biết với nhé! Và hãy thanks bằng cách bấm nút Thanks để tỏ rõ mình là người lịch sự nào! ^^
Reply
Những người đã cảm ơn khải nguyên
#3
(01-07-12, 11:46 AM)Xuân Thanh Đã viết: Chúng ta biết rằng Access luôn tự động lưu lại các record mỗi khi ta nhập mới hoặc sửa đổi. Để ngăn không cho access tự động lưu, muốn lưu phải hỏi trước, nếu đồng ý thì lưu, nếu không thì undo lại giá trị trước khi thay đổi, ta dùng thủ thuật sau của sự kiện BeforeUpdate của form

Mã:
Private Sub Form_BeforeUpdate(Cancel As Integer)

   'If the form data has changed a message is shown asking if
   'the changes should be saved. If the answer is no then
   'the changes are undone

   On Error GoTo BeforeUpdate_Error
  
   If Me.Dirty Then
    'if record has been changed the dirty property
    'is set to true Display message to save the record
      If MsgBox("The record has changed - do you want to save it?", _
      vbYesNo + vbQuestion, "Save Changes") = vbNo Then
         Me.Undo
      End If
   End If

BeforeUpdate_Exit:
   Exit Sub

BeforeUpdate_Error:
   MsgBox Err.Description
   Resume BeforeUpdate_Exit

End Sub

Bac Xuan Thanh hay lam. cam on bac. Minh dang can chuc nang nay. Thuc su minh cung co cach khac khac phuc nhung phuc tap hon. Cach cua bac qua ok
Chữ ký của cannguyen Xin chào, mình là cannguyen, Tham gia http://thuthuataccess.com/forum từ ngày 15-08 -11.
Reply
Những người đã cảm ơn
#4
đối với single form thì xử lý được nhưng nếu có subform thì không được các bạn ơi. Có ai làm đươc với subform chia sẽ mình với
Chữ ký của tanthuc Xin chào, mình là tanthuc, Tham gia http://thuthuataccess.com/forum từ ngày 04-10 -12.
Reply
Những người đã cảm ơn
#5
(01-07-12, 11:49 AM)khanhduycsgt Đã viết: cái này cũng tương tự như code cho nút Hủy thôi. chỉ khác là bỏ vào sự kiện Form_BeforeUpdate, dù sao cũng thanks bạn!

Hi KhanhDuycsgt
Hành trình access của mình bằng thời gian tham gia forum này - gần 2 ngày hi hi. Bác google dẫn mình tới đây.
Là dân ngoại đạo và với kinh nghiệm trên chắc bạn cũng bít là chửa có mánh gì . Mình quan sát diễn đàn còn như xem mục lục. Nhìn thấy code mà hoảng quá bạn ơi 014
Bạn có mánh nào học hiệu quả chia sẽ mình với nhé! Chỗ mới mình làm đang quản lý thông tin bằng excel, dùng như những cái ma trận không có quy luật trên những tờ giấy Bãi Bằng í, trông chán lắm021

007 Thanks thanks

ối ối nút post ở đâu nhỉ027
Chữ ký của phamvanthanh Xin chào, mình là phamvanthanh, Tham gia http://thuthuataccess.com/forum từ ngày 30-10 -12.
Reply
Những người đã cảm ơn
#6
Bây giờ kg có ai phải lòng vòng nhập Dữ Liệu từ Table mà người ta nhập DL trưc tiếp trên Form tiện lợi mọi mặt Còn trong Subform nhúng vào Form mẹ thì khi thoát muốn cho nó hỏi hay kg cũng chỉ cần làm nút THOÁT bình thường trên Form thôi chứ sao lại với Subform thì kg được ,có chăng chỉ là kg có biến cố xóa dòng ( record ).. hay lưu dòng ( record ) mà thôi ! chưa thấy lỗi này
Khải Ngyên có gì Sorry nhé !
Chữ ký của khải nguyên Khải Nguyên Xin Gửi lời chào tới Tất cả các bạn trên Diễn Đàn Thủ Thuật Access
Chúc cả nhà may mắn và  thành đạt ! Lightbulb
Reply
Những người đã cảm ơn
#7
Sad 
(10-02-13, 11:31 PM)khải nguyên Đã viết: Bây giờ kg có ai phải lòng vòng nhập Dữ Liệu từ Table mà người ta nhập DL trưc tiếp trên Form tiện lợi mọi mặt Còn trong Subform nhúng vào Form mẹ thì khi thoát muốn cho nó hỏi hay kg cũng chỉ cần làm nút THOÁT bình thường trên Form thôi chứ sao lại với Subform thì kg được ,có chăng chỉ là kg có biến cố xóa dòng ( record ).. hay lưu dòng ( record ) mà thôi ! chưa thấy lỗi này
Khải Ngyên có gì Sorry nhé !

Nghe nói vậy mình cũng thử vào Subform nhập đúng là ko cập nhật đc cho subform rồi bạn ơi, 040
Chữ ký của lotus Xin chào, mình là lotus, Tham gia http://thuthuataccess.com/forum từ ngày 18-02 -13.
Reply
Những người đã cảm ơn
#8
Khải Nguyên xin bạn " Lotus " thử Code sau :
Mã:
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
     Dim N  As Integer
     Response = acdatacontinue
     N = MsgBox("Xoa kg", vbOKCancel + vbCritical, "Khải Nguyên")
     If N = vbCancel Then
          Cancel = True
     End If
End Sub

Phần lệnh này phải : "Trực tiếp gán vào Form nào cần xóa "
Như tôi vẫn làm : nếu trên Form Sub mà nhúng vào Form Main thì lệnh này phải gán váo thuộc tính của Form Sub mới chạy đúng !
Khải Nguyên làm kg có lỗi gì mà OK hết , bãn thử chạy thử xem rồi cho kết quả nhé
Khải Nguyên !

O sao kỳ vậy phần cậu: N = MsgBox tiếp đến là dấu ( cơ mà
N = MsgBox ("Xoa kg", vbOKCancel + vbCritical, " Khải Nguyên")
mà sao đăng tải lên nó có hình mặt quỷ vậy ?
Khải Nguyên Sorry kg hiểu !
Chữ ký của khải nguyên Khải Nguyên Xin Gửi lời chào tới Tất cả các bạn trên Diễn Đàn Thủ Thuật Access
Chúc cả nhà may mắn và  thành đạt ! Lightbulb
Reply
Những người đã cảm ơn
#9
Cái chỗ có mặt quỷ đó là dấu " ( " mở ngoặc đó !
Khải Nguyên!
Chữ ký của khải nguyên Khải Nguyên Xin Gửi lời chào tới Tất cả các bạn trên Diễn Đàn Thủ Thuật Access
Chúc cả nhà may mắn và  thành đạt ! Lightbulb
Reply
Những người đã cảm ơn
#10
Để tránh các ký tự nhảy ra không mong muốn. Các bạn khi trình bày code nên cho vào thẻ [code] nội dung [/code].
Trên tranh công cụ gõ diễn đàn là dấu #
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
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
  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
  [Thủ Thuật] Ẩn record trong table theo ngày tháng tvn_hut 6 488 24-04-16, 01:00 AM
Bài mới nhất: tvn_hut
  Thuộc tính Startup MS Access toàn tập với VBA Noname 2 2,736 18-04-16, 04:50 PM
Bài mới nhất: ongke0711
  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
  [Thủ Thuật] Hỏi_Xác định phiên bản Access đang dùng maidinhdan 1 379 18-12-15, 08:43 AM
Bài mới nhất: ongke0711

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ơ