Đá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 y: Neu Folder "ToPath" da co roi, no 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(FolderPathTo 1 Step -1
       If Mid
(FolderPathi1) = "=" 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 backup, se 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(FromPath1) = "\" Then FromPath = Left(FromPath, Len(FromPath) - 1)


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


   Set FSO = CreateObject("
scripting.filesystemobject")
   If FSO.FolderExists(FromPath) = False Then
       MsgBoxUni FromPath & "
không t" & ChrW(7891) & "n t" & ChrW(7841) & "!"
       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) & "" & 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
  Nhiều người cùng phát triển 1 ứng dụng Access killitmore 4 119 08-11-17, 01:24 PM
Bài mới nhất: cpucloi
  Phát hiện nhiều sự tào lao của Access 2016 tranthanhan1962 12 299 03-11-17, 11:16 PM
Bài mới nhất: DooHoaangPhuuc
  [Help] Import từ MS Access vào phần mềm Bravo tuanvn291089 1 91 24-10-17, 09:03 PM
Bài mới nhất: maidinhdan
  chạy file access trên mạng internet thanhtruong 16 1,932 24-10-17, 07:57 PM
Bài mới nhất: mytho
  [Hỏi] Sao lưu file MDB và tạo lệnh phục hồi dữ liệu hoangminh 5 343 17-08-17, 03:54 PM
Bài mới nhất: cpucloi

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ơ