Truy xuất dữ liệu file từ user khác trong mạng LAN bằng ADO (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

viehoai

Thành viên gắn bó
Tham gia
22/5/09
Bài viết
2,599
Được thích
2,908
Qua những gì em đã học trên diễn đàn về truy xuất dữ liệu bằng ADO thì file đính kèm dưới đây đã thực hiện được.
Tuy nhiên quá trình thực hiện phát hiện ra một điều là nếu file dữ liệu (Database.xls) ở use khác đang mở thì khi thực hiện code thì file Database.xls mở theo. Còn khi file Database.xls đang đóng thì không sao.
Vậy xin hỏi các anh chị khắc phục vấn đề này như thế nào?
 

File đính kèm

Qua những gì em đã học trên diễn đàn về truy xuất dữ liệu bằng ADO thì file đính kèm dưới đây đã thực hiện được.
Tuy nhiên quá trình thực hiện phát hiện ra một điều là nếu file dữ liệu (Database.xls) ở use khác đang mở thì khi thực hiện code thì file Database.xls mở theo. Còn khi file Database.xls đang đóng thì không sao.
Vậy xin hỏi các anh chị khắc phục vấn đề này như thế nào?
sao bạn không thay bằng dòng sau rồi shared ổ đĩa sử dụng chung cho tiện
PHP:
Pth = ThisWorkbook.Path & "\Database.xls"
mình cũng đang sử dụng vây tốt mà ...còn khi hai file Test cùng lấy dữ liệu một lượt báo lỗi thì sử dụng code đóng file đó lại trước khi lấy(cách này tạm dùng vì chưa có cách khác hay hơn)
 
Upvote 0
sao bạn không thay bằng dòng sau rồi shared ổ đĩa sử dụng chung cho tiện
PHP:
Pth = ThisWorkbook.Path & "\Database.xls"
mình cũng đang sử dụng vây tốt mà ...còn khi hai file Test cùng lấy dữ liệu một lượt báo lỗi thì sử dụng code đóng file đó lại trước khi lấy(cách này tạm dùng vì chưa có cách khác hay hơn)
Trước mắc mình khắc phục điều này bằng cách thêm dòng lệnh
[GPECODE=vb]If ActiveWorkbook.Name <> ThisWorkbook.Name Then ActiveWorkbook.Close (False)[/GPECODE]
Nhưng có điều khi vào cửa sổ VBE thì file Database.xls vẫn còn, nếu thực hiện code nhiều lần thì trong VBE thấy rất nhiều file đó đang mở
 
Upvote 0
Các anh chị có giải pháp nào khác xin được giúp đỡ
 
Upvote 0
Bạn tạm giải quyết như sau:

Mã:
Sub Test() 
 Dim xl As Object
 Dim myArr(), Pth As String
 Sheet1.Range("A1:C34").ClearContents
'Pth = ThisWorkbook.Path & "\Database.xls"  '--->OK
 Pth = "DuongDanDenFile"    '------> File Database.xls MO RA
 Set xl = GetObject(Pth)
 myArr = GetDataBase("Dulieu", Pth)
 FillToRange Sheet1.Range("A1"), myArr


End Sub

Còn muốn nó đóng luôn ở cửa sổ code thì thêm đoạn sau bên dưới code

Mã:
xl.Close
Set xl = Nothing
 
Upvote 0
đọc lại bài này mình đang nghĩ xem có cách nào lấy dữ liệu từ máy khác qua mạng LAN mà không phải Share Full Folder không ....???!!!

đang Tìm tài liệu nghiên cứu Ai biết chỉ dùm
 
Upvote 0
đọc lại bài này mình đang nghĩ xem có cách nào lấy dữ liệu từ máy khác qua mạng LAN mà không phải Share Full Folder không ....???!!!

đang Tìm tài liệu nghiên cứu Ai biết chỉ dùm

Lan chỉ là phương thức truyền dữ liệu, còn quyền truy cập dữ liệu phụ thuộc vào network and sharing, nếu người dùng không share, không cho bạn view, thì làm sao lấy dữ liệu đc
 
Upvote 0
Hình như ÂY-TUN vẫn làm có thể được điều này thì phải.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom