Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hướng dẫn] Hỏi cách tạo code phục hồi dữ liệu trong table sau khi backup
#1
Xin chào các bạn. Vấn đề của mình là như này
Mình có học trên mạng và chép được 1 đoạn code để backup table trong access ra 1 file riêng và đã sử dụng được code đó.
Giờ mình muốn xin code restore tất cả dữ liệu ở table trong file backup đó vào file access mới có các table tương tự
Trước mình nhớ trên 4rum có 1 bài share 1 file tương tự để nghiên cứu nhưng giờ mình tìm không thấy.
Mong các bạn giúp đỡ
Chữ ký của doandinhtam doandinhtam,gia nhập Thủ Thuật Access từ 15-12 -16.
Reply
Những người đã cảm ơn
#2
Bạn nghiên cứu thêm về FrontEnd - BackEnd nhé, nó chính là yêu cầu của bạn mà không phải code gì cả, nếu cần thì search từ khóa "sao lưu" trên 4rum nhé
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


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan
#3
(27-08-18, 04:01 PM)cpucloi Đã viết: Bạn nghiên cứu thêm về FrontEnd - BackEnd nhé, nó chính là yêu cầu của bạn mà không phải code gì cả, nếu cần thì search từ khóa "sao lưu" trên 4rum nhé

Ý mình là mình tạo 1 form. Trên form đó có nút backup và restore. Khi bấm vào nút backup sẽ tạo được 1 file backup chứa table và data ( phần backup mình làm được rồi)
Giờ còn phần restore đó thì mình chưa biết bạn có thể giúp mình không?
Chữ ký của doandinhtam doandinhtam,gia nhập Thủ Thuật Access từ 15-12 -16.
Reply
Những người đã cảm ơn
#4
Thực sự không hiểu ý bạn lắm nhưng chắc bạn muốn Restore tức là phục hồi lại Database (những Table đã lưu), bạn nghiên cứu thêm về LinkTable nhé
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


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
Đã backup được thì sao không restore được nhỉ, chỉ là làm ngược lại thôi. Thế này nhé bạn backup dữ liệu từ file A ra file B bằng code được thì bạn restore từ B về A(hoặc C) cũng code đó thôi, chỉ là thay dổi A, B, C mà thôi
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
#6
(27-08-18, 09:17 PM)Xuân Thanh Đã viết: Đã backup được thì sao không restore được nhỉ, chỉ là làm ngược lại thôi. Thế này nhé bạn backup dữ liệu từ file A ra file B bằng code được thì bạn restore từ B về A(hoặc C) cũng code đó thôi, chỉ là thay dổi A, B, C mà thôi

Mã:
Sub BackUp()

    Dim dTime As Date
    
    On Error Resume Next
    dTime = InputBox("Sao luu du lieu", , Time + TimeValue("00:00:05"))
    If Err.Number <> 0 Then Exit Sub
    
    Do Until Time >= dTime
        DoEvents
    Loop
    
    Dim sFile As String, oDB As DAO.Database
    sFile = CurrentProject.Path & "\" & Format(Date, "dd-mm-yyyy") & ".bak"
    
    If Dir(sFile) <> "" Then Kill sFile
    
    Set oDB = DBEngine.Workspaces(0).CreateDatabase(sFile, dbLangGeneral)
    oDB.Close
    DoCmd.Hourglass True
    
    Dim oTD As TableDef
    For Each oTD In CurrentDb.TableDefs
        If Left(oTD.Name, 4) <> "MSys" Then
           DoCmd.CopyObject sFile, , acTable, oTD.Name
        End If
    Next oTD
    
    DoCmd.Hourglass False
    
    MsgBox "Sao luu du lieu xong"
    
End Sub

Function Saoluu()
Dim sFile As String
    sFile = "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE15"
    On Error Resume Next
    Application.VBE.ActiveVBProject.References.AddFromFile sFile
    BackUp
End Function
Đây là code backup, bạn xem giúp mình làm sao để restore với
Chữ ký của doandinhtam doandinhtam,gia nhập Thủ Thuật Access từ 15-12 -16.
Reply
Những người đã cảm ơn
#7
(27-08-18, 07:16 PM)cpucloi Đã viết: Thực sự không hiểu ý bạn lắm nhưng chắc bạn muốn Restore tức là phục hồi lại Database (những Table đã lưu), bạn nghiên cứu thêm về LinkTable nhé
Ví dụ mình có 1 file access quản lý học sinh tên 1.mdb chứa 3 table: tbl_Lop,tbl_TENHOCSINH,tbl_diemthi và các form,query liên quan.
Giờ mình muốn làm 1 form có 2 phần là backup và restore.
Backup thì mình làm được rồi, mình backup tất cả table (không backup form hay query) ra 1 file *.bak riêng rồi. 
Giờ mình muốn tạo phần restore gồm 1 nút browse để người dùng tự chọn tới file *.bak muốn restore và 1 nút [khôi phục]. Khi bấm vào nút [khôi phục] thì sẽ xóa hết dữ liệu data hiện có trong các table của file 1.mdb và tự động chép toàn bộ dữ liệu trong table ở file *.bak vào table của file 1.mdb.
Mong bạn giúp đỡ
đây là code module cho phần backup:
Mã:
Sub BackUp()

   Dim dTime As Date
   
   On Error Resume Next
   dTime = InputBox("Sao luu du lieu", , Time + TimeValue("00:00:05"))
   If Err.Number <> 0 Then Exit Sub
   
   Do Until Time >= dTime
       DoEvents
   Loop
   
   Dim sFile As String, oDB As DAO.Database
   sFile = CurrentProject.Path & "\" & Format(Date, "dd-mm-yyyy") & ".bak"
   
   If Dir(sFile) <> "" Then Kill sFile
   
   Set oDB = DBEngine.Workspaces(0).CreateDatabase(sFile, dbLangGeneral)
   oDB.Close
   DoCmd.Hourglass True
   
   Dim oTD As TableDef
   For Each oTD In CurrentDb.TableDefs
       If Left(oTD.Name, 4) <> "MSys" Then
          DoCmd.CopyObject sFile, , acTable, oTD.Name
       End If
   Next oTD
   
   DoCmd.Hourglass False
   
   MsgBox "Sao luu du lieu xong"
   
End Sub

Function Saoluu()
Dim sFile As String
   sFile = "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE15"
   On Error Resume Next
   Application.VBE.ActiveVBProject.References.AddFromFile sFile
   BackUp
End Function
Chữ ký của doandinhtam doandinhtam,gia nhập Thủ Thuật Access từ 15-12 -16.
Reply
Những người đã cảm ơn
#8
Tham khảo ở đây http://thuthuataccess.com/forum/thread-10632.html
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
#9
Một giải pháp khác:
- Xoá hết các table hiện tại.
- Import table từ file backup dùng: Docmd.TransferDatabase acImport,........, acTable.....

Cách hay nhất là bạn tách ứng dụng của bạn ra thành 2 file Font End và Back End (chỉ chứa Table), sau đó back up hoặc Restore toàn bộ file BE này cho nhanh. Nếu theo cách này bạn tham khảo bài viết của bạn MTNQ, có demo luôn.
Link: http://thuthuataccess.com/forum/post-389...l#pid38933
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
#10
(28-08-18, 09:43 AM)ongke0711 Đã viết: Một giải pháp khác:
- Xoá hết các table hiện tại.
- Import table từ file backup dùng: Docmd.TransferDatabase acImport,........, acTable.....
 cách làm như nào bạn?
Chữ ký của doandinhtam doandinhtam,gia nhập Thủ Thuật Access từ 15-12 -16.
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
  [Help] chỉ dùm bôi đen text trong form textbox bo bin 5 177 17-11-18, 06:59 PM
Bài mới nhất: bo bin
  [Hỏi] Đảm bảo tính toàn vẹn của dữ liệu mrsiro 11 605 12-10-18, 10:46 AM
Bài mới nhất: ongke0711
  [Hỏi] Lỗi khi không chọn dữ liệu khi Save As 'Invalid procedure call or argument.' doandinhtam 2 220 02-09-18, 09:48 AM
Bài mới nhất: doandinhtam
  [Hỏi] Nên dùng bảng tạm (TempTable) ngay trong file FE hay file .mdb tạm (TempTable.mdb) ongke0711 5 372 29-08-18, 09:18 PM
Bài mới nhất: ongke0711
  Hỏi về bắt lỗi trong accc thanlaem 21 4,413 07-08-18, 11:02 PM
Bài mới nhất: vdttuan

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line