• Cách lấy (copy)database tại một máy trên mạng Lan
  • Cách lấy (copy)database tại một máy trên mạng Lan

    Noname > 27-08-10, 10:11 AM

    Hỏi:
    Mong được sự giúp đỡ của các cao thủ lập trình Access :
    _ Đến 1 ngày nhất định trong tháng phải copy database Access từ một máy tính trên mạng Lan; tên máy tính là computerA và địa chỉ IP tĩnh 192.168.1.30, máy tính A share thư mục với tên "Baocao" và tên file cần lấy là "Nhaplieu.mdb".
    ( tức là \\computerA\Baocao\nhaplieu.mdb hoặc \\192.168.1.30\Baocao\nhaplieu.mdb )
    + Mình muốn tạo một button khi click vào sẽ tự động lấy file ấy về và để tại máy tính mình tại thư mục gốc ổ D.

    Đáp:

    Trong sự kiện Click, bạn cho dòng lệnh sau vào
    Mã:
    Dim RCopy as String
        Rcopy= "Copy \\computerA\Baocao\nhaplieu.mdb D:\nhaplieu.mdb"

        Shell RCopy,vbHide

    Hoặc:

    Mã:
    Call FileCopy("\\computerA\Baocao\nhaplieu.mdb", "D:\nhaplieu.mdb")

    Nếu vẫn không được thì dùng cách sau
    b1. Tạo 1 file nội dung là
    Mã:
    Copy D:\CSDL\DATA.mdb D:\CSDLLUU\DATA.mdb
    lưu thành file d:\csdl\copy.bat
    b2. gọi hàm
    Mã:
    Shell "d:\csdl\copy.bat", vbHide

    Trong trường hợp máy copy yêu cầu nhập userName/ pass để được vào copy thì bạn dùng cách Map 1 ổ đĩa mạng, rồi copy từ đó về máy.
    Xem thêm cách map ổ đĩa mạng với UserName/ Pass

  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    chihienphuco > 06-12-10, 03:22 PM

    Anh Noname cho hỏi sử dụng hàm trên phải mở thêm thư viện nào trong References. Nó báo lỗi.
    Mong anh giúp!
  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    Noname > 06-12-10, 03:27 PM

    Bạn chụp hình lỗi post lên mình xem thử
  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    chihienphuco > 06-12-10, 03:34 PM

    Câu lệnh:
    Private Sub Command371_Click()
    FileCopy ("D:\CSDL\DATA.mdb", "D:\CSDLLUU\DATA.mdb")
    End Sub

    Viết xong xuống dòng nó báo thế này:

    Compile error:
    Expected:=

  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    Noname > 06-12-10, 03:38 PM

    (06-12-10, 03:34 PM)chihienphuco Đã viết: Câu lệnh:
    Private Sub Command371_Click()
    FileCopy ("D:\CSDL\DATA.mdb", "D:\CSDLLUU\DATA.mdb")
    End Sub

    Viết xong xuống dòng nó báo thế này:

    Compile error:
    Expected:=

    Bạn khai báo thư viện này thử xem:
    [Hình: OfficeLib.jpg]
  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    Cafe Via He > 06-12-10, 03:47 PM

    Bác thêm chữ Call khi viết lệnh đó

    Call FileCopy ("D:\CSDL\DATA.mdb", "D:\CSDLLUU\DATA.mdb")
  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    chihienphuco > 06-12-10, 03:52 PM

    (06-12-10, 03:47 PM)Cafe Via He Đã viết: Bác thêm chữ Call khi viết lệnh đó

    Call FileCopy ("D:\CSDL\DATA.mdb", "D:\CSDLLUU\DATA.mdb")

    Đổi câu lệnh này cho chạy giờ báo lỗi là:
    Trích dẫn:Run-timer Error '70':
    Permission denied

    Còn cách nào ko mấy lão huynh, giúp với!
  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    Noname > 06-12-10, 03:57 PM

    Bạn thử với file khác và đường dẫn khác coi nó hoạt động không rồi mới đoán được bệnh!
  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    chihienphuco > 06-12-10, 04:04 PM

    Đổi file khác thì câu lệnh cho copy, nhưng file DATA.mdb đang hoạt động thì câu lệnh báo lỗi. Mà em mở cửa sổ copy bằng tay như thông thường paste chổ khác nó vẫn thực hiện được?
    Có cách nào khắc phục giúp em với!
  • RE: Cách lấy (copy)database tại một máy trên mạng Lan

    haquocquan > 06-12-10, 04:14 PM

    Đúng rồi, câu lệnh đó làm sao copy được file đang mở (trong khi dùng lệnh copy của WIN vẫn bình thường).