Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hướng dẫn] Lưu 1 file access sẽ về 2 thư mục folder
#1
ý của mình là: Ở ổ D:/ Mình có "folder1" chứa file access và 1 số hình ảnh, khi sử dụng xong 1 ngày ta tắt đi, thì file access và hình ảnh ở mục "folder1" này sẽ tự động lưu 1 bảng sang "folder2" ở ở E:/ (để đề phòng ai xóa dữ liệu, nếu xóa thì nó vẫn còn ở ổ E)

Xin mọi người cho ý kiến.
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#2
sao không ai thảo luận vấn đề này nhỉ?
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#3
Nếu bạn chỉ muốn lưu 1 file BE.mdb thì xem Code trong cái ứng dụng QL Văn phòng phẩm mình đã share trong mục Share code.

Back up toàn bộ Folder sang Folder khác
Nếu muốn lưu luôn nguyên folder thì xem Demo mình mới trích ra : BackupFolder.mdb  
Mình sử dụng FileSystemObject.CopyFile. Code này mình có thể sao lưu dữ liệu đè lên folder cũ hoặc có thể mỗi lần sao lưu là tạo 1 folder mới tên folder theo "dd-mm-yyyy:hh:ss" (Có ghi chú trong code).

Code vba như sau:

Mã PHP:
Option Compare Database
Option Explicit

Sub CopyFolder
()
   
'Copy tat ca Files va SubFolder tu Folder "FromPath" den Folder "ToPath".
'
Chu yNeu Folder "ToPath" da co roino se ghi de du lieu.
   Dim FSO As Object
   Dim FromPath 
As String
   Dim ToPath 
As String
   Dim pTablename 
As StringFolderPath As String
   Dim i 
As Long
   
   
'Ham GetFolder se lay duong dan cua file BE dua vao 1 link table Vi du: "tblUsers"
   pTablename = "tblUsers"
   FolderPath = GetBEFolder(pTablename) '
Path se la chuoi bao gom "PWD=...;Database=Duong dan file"
   
   
'Tu dong lay duong dan Folder can backup
   For i = Len(FolderPath) To 1 Step -1
       If Mid(FolderPath, i, 1) = "=" Then  '
Cat bo chuoi "PWD, DATABSE..."
           FromPath Right(FolderPathLen(FolderPath) - i)
           Exit For
       End If
   Next
   
   
'Tu dong lay duong dan Folder de sao luu file backup
   Dim rs As DAO.Recordset
   Set rs = CurrentDb.OpenRecordset("ToPath", dbOpenSnapshot)
   ToPath = rs!ToPath
   rs.Close
   Set rs = Nothing
   
   '
Neu muon moi lan backupse tao ra folder moi thi dat ten folder voi "dd-mm-yyyy"
   'VD: ToPath = "C:\Users\TenUser\" & Format(Now, "yyyy-mm-dd h-mm-ss")

   If Right(FromPath, 1) = "\" Then
       FromPath = Left(FromPath, Len(FromPath) - 1)
   End If

   If Right(ToPath, 1) = "\" Then
       ToPath = Left(ToPath, Len(ToPath) - 1)
   End If

   Set FSO = CreateObject("scripting.filesystemobject")
   If FSO.FolderExists(FromPath) = False Then
       MsgBoxUni FromPath & "không t" & ChrW(7891) & "n t" & ChrW(7841) & "i !"
       Exit Sub
   End If

   FSO.CopyFolder Source:=FromPath, Destination:=ToPath
   MsgBoxUni "Folder " & ChrW(273) & "ã " & ChrW(273) & ChrW(432) & ChrW(7907) & "c sao l" & ChrW(432) & "u " & ChrW(7903) & " " & ToPath
   
End Sub

Public Function GetBEFolder(pTablename As String) As String

   Dim strFullPath As String
   Dim i As Long

   strFullPath = Mid(DBEngine.Workspaces(0).Databases(0).TableDefs(pTablename).Connect, 11)

   For i = Len(strFullPath) To 1 Step -1
       If Mid(strFullPath, i, 1) = "\" Then
           GetBEFolder = Left(strFullPath, i)
           Exit For
       End If
   Next
   
End Function


Private Sub Command0_Click()
   
   Call CopyFolder
   
End Sub 

PS: Không biết sao mà code trong khung [php] nó đổi màu chữ tùm lum!!!  007
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 Noname , thanhtruong , maidinhdan
#4
"Tạo 1 table link với một BackEnd .mdb nào đó. Sau đó đổi tên table vừa link thành "tblUsers". Nếu không đổi tên thì vô code đổi tên table tham chiếu. "


Xin lỗi! Mình không hiểu và không biết làm theo ý câu trên, câu bôi màu đỏ
Mong được sự hồi đáp, Xin cảm ơn.
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#5
007 
Trong Code có cái hàm GetBEFolder() phải dựa vào 1 table (linked table bất kỳ) để lấy cái đường dẫn đến file BE rồi mới xử lý ra cái đường dẫn folder chứa file BE. Hàm này chỉ sử dụng cho CSDL có FE và BE.

Có thể mình nói "Tạo 1 table link..." hơi thừa nếu CDSL của bạn đã tách ra FE và BE rồi. Do vậy trong bạn chỉ cần lấy tên 1 table bất kỳ nào đó trong BE.mdb của bạn và vô code đổi tên table tham chiếu ở dòng: pTablename = "tblUsers" thành tên table của bạn.
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 thanhtruong , maidinhdan , Noname
#6
Mình làm thế này không biết có đúng không? (vì đến bây giờ mình chưa làm đựơc)
 
Có 1 file Access tên là "test.mdb" sau đó mình chia CSDL thành Back và End thì sẽ tạo ra 2 file "test.mdb" và "test_be.mdb", Sau đó mình lấy "test.mdb" để thực hiện theo file demon backupfolder của ongke.
 
mình tạo một table tên "topath", rồi nhập đường dẫn trên máy của mình là (d:\frompath)  folder chứa file "test.mdb"
 
sau đó tạo một from tên "from1", coppy toàn bộ code của file demon vào
 
Sửa 1 table thành "tblusers", sau đó chạy from1, 
 
nhưng không cho kết quả gì cả chỉ báo là "KHÔNG TỒN TẠI"
 
Mong Ôngke cho ý kiến.
 
P/S: Nói thật mình mò nguyên 1 buổi chiều và cho đến bây giờ mà vẫn không tìm ra lối thoát.
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#7
- Báo "Không tồn tại" là lỗi không tìm thấy folder chứa file test_be.mdb.
- Table mà bạn sửa tên thành "tblUsers" là table của file test_be.mdb (tên "tblUsers" phải đúng từng chữ).
- Ở file test.mdb bạn import linked table với "tblUsers" ở file test_be.mdb

Nếu không ra bạn up file lên đây tôi xem cho nhanh.
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 maidinhdan , thanhtruong
#8
(09-11-15, 02:32 PM)ongke0711 Đã viết: - Báo "Không tồn tại" là lỗi không tìm thấy folder chứa file test_be.mdb.
- Table mà bạn sửa tên thành "tblUsers" là table của file test_be.mdb (tên "tblUsers" phải đúng từng chữ).
- Ở file test.mdb bạn import linked table với "tblUsers" ở file test_be.mdb

Nếu không ra bạn up file lên đây tôi xem cho nhanh.

Để mình mài mò thử xem, nếu không được mình sẽ up file lên. Xin cảm ơn trước.
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn maidinhdan
#9
Mình làm vẫn không được!
bây giờ mình úp file lên nhờ bạn giúp nha.
Mà mình không biết up file nào lên. File đã chia Back - end, hay file gốc chưa chia CSDL
Chữ ký của thanhtruong Xin chào, mình là thanhtruong, Tham gia http://thuthuataccess.com/forum từ ngày 23-06 -14.
Reply
Những người đã cảm ơn
#10
Bạn up file FE chứa code đó.
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 thanhtruong


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Lỗi không tạo file mới bằng định dạng .mdb feeling 4 87 29-11-16, 04:22 PM
Bài mới nhất: feeling
  [Help] Lỗi "A problem occurred while Microsoft Access was communicating with the OLE server thanhoai 1 109 03-11-16, 03:53 PM
Bài mới nhất: maidinhdan
  [Lỗi] Cúp điện ---> lỗi access 2013 biencuong86 3 153 26-10-16, 04:30 PM
Bài mới nhất: maidinhdan
  thay đổi biểu tượng Access dưới thanh Start từ win 7 đến win 10 thanhtruong 7 435 05-08-16, 10:53 PM
Bài mới nhất: hungefi
  [Hỏi] File chạy chậm vì trong quá trình design phải chỉnh sửa và test thử nhiều. toancvp 4 266 29-07-16, 11:36 PM
Bài mới nhất: toancvp

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ơ