Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hướng dẫn] Cách lưu (back up database) dữ liệu!
#1
Mỗi tháng mình phải lưu dữ liệu của mình, đề phòng trường hợp mất dữ liệu.
Mình làm như sau: Vào Tools/ chọn Database Utilities/ chọn Back up database/ chọn save.
Nhưng: Có một bất tiện và nguy hiểm vì sợ rằng có ai sẽ coppy file đó để về nghiên cứu doanh thu và . . .
Hỏi: Mình muốn rằng, có cách nào nhanh ngọn khi Back up dữ liệu sẽ gắn cho nó một mật khẩu luôn.
Hay là tạo một nút Back up dữ liệu trên forms có được không?
Chữ ký của danhxetnghiem Đừng bao giờ so sánh đoạn đầu của bạn với đoạn giữa của người khác
Reply
Những người đã cảm ơn
#2
Có nhiều cách để lưu dữ liệu dụ phòng (DLDP):
1/ cập nhật DLDP liên tục
2/ Lưu khi khởi động hoặc đóng ứng dụng
3/ Lưu theo một lịch biểu tự chọn

Với cách 1 bạn có thể tham khảo topic sau:
http://thuthuataccess.com/forum/post-201...l#pid20143

Thực ra đó là cách đồng bộ hai table:
Bạn link các table từ file dự phòng vào ứng dụng và thực hiện đồng bộ table đang sử dụng và table link từ CSDL dự phòng
P/s: Nếu có thời gian mình sẽ làm một file demo vì làm nó cũng phải ngồi gõ khá nhiều 015
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn danhxetnghiem , maidinhdan
#3
Sorry! Mấy ngày này bận quá, nhưng lỡ hứa nên hôm nay mình tranh thủ chút tg để chia sẻ cùng bạn về đề tài này.
Mình sử dụng 2 cách sau để lưu DLDP:
1/Copy CSDL và lưu vào nơi khác để làm DLDP
2/Đồng bộ table (giữa CSDL và DLDP)

I/ cách 1:
-Đơn giản chỉ 1 dòng: FileCopy (CSDL, DLDP)
Nói thì vậy nhưng cách làm của mình thì nó cũng khá dài.( Pro nào có cách đơn giản hiệu quả hơn thì chia sẻ nha )
-Cách này có nhược điểm là tạo ra nhiều file DLDP, nếu bạn backup mỗi ngày thì sẽ chiếm một dung lượng khá lớn
-> cách khắc phục: tạo hàm xóa thư mục backup của tháng trước và toàn bộ các file trong đó


1- tạo hàm fcBackupDB()
-Lấy đường dẫn của link table, tách chuỗi để lấy tên file CSDL
-Kiểm tra sự tồn tại của CSDL, nếu không có thì thông báo và thoát
-Kiểm tra sự tồn tại của thư mục lưu DLDP, chưa có thì tạo một thư mục có tên BackupDB (D:\BackupDB\), và trong BackupDB tạo thêm 1 thư mục lấy tên bằng tháng hiện hành (VD: thang10)
-Copy CSDL lưu vào thư mục "thang10"
-Nếu thành công thỉ Gọi hàm ghi thông tin backup vào tblBACKUPLOG
-Gọi hàm xóa thư mục backup của tháng trước (VD: thang9)
-nếu có lỗi cũng gọi hàm ghi thông báo lỗi vào tblBACKUPLOG
.......

Sorry tới giờ mình phải làm việc rồi, mình sẽ tiếp tục sau vậy.

Dưới đây là file DEMO mình đã tách riêng CSDL và ứng dụng đồng thời thiết kế tự động liên kết link table nên bạn tải về rồi giải nén vào đâu cũng được (thư mục lưu DLDP mặc định là D:\BackupDB\)

Demo BackupDB
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn danhxetnghiem , maidinhdan
#4
1/ Với những bạn còn non kinh nghiệm, nên thư6c hiện theo cách thứ nhất của MatTroiNguQuen ===> nhưng đừng ngủ quên thiệt đó nha, nếu không sẽ không tìm thấy dữ liệu backup
2/ Với tôi, tôi thường sử dụng DAO hoặc ADO để backup CSDL
Thân mến
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 MatTroiNguQuen , Minh Tiên , maidinhdan
#5
(03-10-13, 10:46 AM)Xuân Thanh Đã viết: 1/ Với những bạn còn non kinh nghiệm, nên thư6c hiện theo cách thứ nhất của MatTroiNguQuen ===> nhưng đừng ngủ quên thiệt đó nha, nếu không sẽ không tìm thấy dữ liệu backup
2/ Với tôi, tôi thường sử dụng DAO hoặc ADO để backup CSDL
Thân mến

Cảm ơn Admin Xuân Thành 015

Tiếp nhận góp ý trên, mình đang làm lại cho nó hoàn chỉnh hơn, thêm nút chọn thư mục lưu và một list box liệt kê tên tất cả các file có trong thư mục đó (tự động update khi bấm vào nút "Lưu DLDP") để chắc chắn rằng khi bấm "Khôi Phục" thì sẽ không báo "Khong tim thay file DLDP"

Ví thời gian có hạn nen mình sẽ up file len khi hoàn tất 021
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn
#6
Đã làm xong Demo_BackupDb2:
Sơ lược:

1/Khi nút "Chọn nơi lưu DLDP" được nhấn (cmdChonFolder_Click)
-Mở cửa sổ chọn thư mục
-Nếu thư mục được chọn :
+ Lấy đường dẫn vào test box "thư mục lưu DLDP" (txtBrowseFolder)
+ lấy về tên tất cả file có trong thư mục vào lixt box bên dưới (lstFileInBackupBD)
-Ghi nhớ đường dẫn thư mục vào tblBACKUPLOG

2/Khi nút "Lưu DLDP" được nhấn (cmdLuuDLDP_Click):
-Copy CSDL lưu vào thư mục đã chọn
-Nếu thành công thì:
+ghi thông tin backup vào tblBACKUPLOG và cập nhật vào 2 list box (Như hình)
+Xóa File DLDP lưu trước 1 ngày (Đúng thì phải là trước 30 ngày mới khớp với dữ liệu lưu trong tblBACKUPLOG nhưng mình test xong chưa sửa lại)
.....
3//Khi nút "Phục Hồi" được nhấn (cmdRestoreDB_Click):
-Kiểm tra kiểu file:
+Nếu không đúng thì thông báo và thoát
+Nếu đúng thì đối chiếu với lịch trình Backup:
a) Nếu có trong tblBACKUPLOG thì:
+++ Backup CSDL hiện hành
+++Thi hành restore và thông báo kết quà

b)Nếu Không có có trong tblBACKUPLOG thì thì đưa ra cảnh báo (yes/no)
+++ Nếu "Yes" thực thi (a)
-Cập nhật xuống 2 list box
.........

Các bạn test giùm và cho ý kiến chỗ nào còn sai hoặc chưa hay thì góp ý để mình hoàn thiện nha
Cảm ơn các bạn rất nhiều! 015

File Download: Demo Lock Record And BackupDB_2.rar

[Hình: 945818794_609432396_574_574.jpg]

P/s: trong file trên mình đã bỏ khóa txtDIACHI theo yêu cầu của bạn Danhxetnghiem, ban Danh xem trong code nha (chỉ cần thêm nháy đơn (') vào trước Control nào không cần khóa (VD: 'Me.txtDIACHI.Locked = la) hoặc xóa luôn đi cũng dc 007
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn danhxetnghiem , hugox03 , maidinhdan
#7
Với data có đặt mật khẩu thì backup này không thực hiện được đúng không bác MatTroiNguQuen
Chữ ký của chuvoicon Xin chào, mình là chuvoicon, Tham gia http://thuthuataccess.com/forum từ ngày 18-11 -13.
Reply
Những người đã cảm ơn
#8
(24-03-15, 01:05 PM)chuvoicon Đã viết: Với data có đặt mật khẩu thì backup này không thực hiện được đúng không bác MatTroiNguQuen

Chào bạn chuvoicon!

Trong ví dụ trên mình dùng hàm FileCopy. Hàm này có thể sao chép các loại tập tin không phụ thuộc tập tin đó có password. Cái bạn đang đề cập đến chắc là ở chỗ Relink table. để Relink với database có pass bạn thay Module: ModRelinker bằng phiên bản cập nhật sau:

basJStreetAccessRelinker.bas
(Mình dùng từ THAY tức là hai module trên không thể cùng tồn tại trong ứng dụng do một số tên hàm giống nhau)

Đây là file mình đã đặt pass cho CSDl là: 123456
Demo BackupDB2_1.rar


-Dùng hàm FileCopy thì không cần khai báo thêm thư viện tham chiếu nhưng có một nhược điểm là sẽ báo lỗi nếu file cần copy đang được sử dụng.

-Bài trên mình viết lâu rùi, giờ đọc lại thấy Code rối quá, thấy cũng không có ai hồi âm gì nên mình không có động lực để viết tiếp 005

-Nếu có thời gian thì bài viết sau mình sẽ giới thiệu tiếp về FileSystem Object, bổ sung thêm một số tùy chọn:
+ Sao chép đồng thời Compact
+ Sao chép và nén với định dạng RAR, ZIP có đặt password (dĩ nhiên là sẽ có hàm giải nén và phụ hồi CSDL)
nerd 015
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn cpucloi , maidinhdan , chuvoicon
#9
Không phải là không quan tâm, bởi vì mình chưa có nhu cầu Backup Database thôi mà, vẫn theo dõi bài của MatTroiNguQuen đều đấy chứ.
P/s: Dạo này cũng hơi bận, chỉ thỉnh thoảng vô 4rum thôi.
014014014014014014014014014014014014014014
Chữ ký của cpucloi Tôi chỉ biết mỗi một điều là những điều tôi biết được còn quá ít 021
Gmail: cgiahuy13@gmail.com


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn MatTroiNguQuen
#10
Cảm ơn bác MatTroiNguQuen hôm trc sau khi mình post lên đã kiểm tra tại sao không backup được, mình biết nguyên nhân là use đang sử dụng và không backup thành công chứ không phải do pass. Cấu trúc trên bê nguyên cái file data không ảnh hưởng và liên quan đến pas CSDL

Thực ra từ trc đến giờ mình toàn làm thủ công nên ít tìm hiểu, bỗng nhiên nảy ra ý định dùng VBA để backup data nên vào ngó nghiêng nghiên cứu và thấy bài của bác mang về nghiên cứu
Chữ ký của chuvoicon Xin chào, mình là chuvoicon, Tham gia http://thuthuataccess.com/forum từ ngày 18-11 -13.
Reply
Những người đã cảm ơn MatTroiNguQuen


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Thiết kế form nhập và lưu trữ dữ liệu theo yêu cầu brianhuynh 16 625 20-10-16, 10:54 PM
Bài mới nhất: brianhuynh
  [Hỏi] Cách loại bỏ icon Filter trên Datasheet Form có nguồn là Query. toancvp 2 103 19-10-16, 08:53 PM
Bài mới nhất: toancvp
  Xóa tất cả các dữ liệu ChiMai 3 145 15-10-16, 02:47 PM
Bài mới nhất: cpucloi
  cách sửa lỗi cant find project or library trungminh 4 232 01-10-16, 03:37 PM
Bài mới nhất: maidinhdan
  [Hỏi] Cách đưa chức năng compact & repair vào form toancvp 6 494 24-08-16, 12:19 AM
Bài mới nhất: paulsteigel

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ơ