Lấy dữ liệu Foxpro
Chào các anh chị, mình cần lấy dữ liệu từ phần mềm kế toán foxpro ra Excel bằng cách Import, để khi dữ liệu thay đổi thì refresh sẽ có dữ liệu cập nhật.
Dữ liệu foxpro ở dạng thư mục, được nén trong file kèm theo, trong file CT.dbf.
Mình đã thử đủ các kiểu dùng Power Query, ODBC, A-Tools của anh Tuân nhưng vẫn chưa được, nên đành post lên đây nhờ sự trợ giúp của cộng đồng GPE.Trân trọng cảm ơn!
Cái này cũ quá rồi, bạn dùng power query connect thông qua query OLE DB, sau đó nhập connectString như vầy, Data source thì là folder chứa file, tuy nhiên cái bảng DBF của foxpro phải convert về dạng foxplus mới connect được
ví dụ query trong foxpro:
use table
copy to d:File.dbf type foxplus
Tôi đang dùng office 365, nên bạn tìm cái Microsoft.ACE.OLEDB phù hợp với phiên bản office của bạn
2150
www.giaiphapexcel.com/diendan/threads/l%E1%BA%A5y-d%E1%BB%AF-li%E1%BB%87u-foxpro.159413/#post-1060947
Nếu Power Query cài thêm Visual FoxPro OLE DB Provider là được.
= OleDb.DataSource("Provider=vfpoledb;
Mấy cái này code Python thì lèo cái xong. Xuất thành thư viện cho VBA rồi sau chỉ ấn cái là xong việc. :p
2151
– Theo tôi biết thì cái VFP ODBC driver nó không còn hỗ trợ nữa nên chuyển sang dùng OLEDB.
– Vô đây download cái driver OLEDB cho FoxPro (VfpOleDB.dll): github.com/VFPX/VFP9SP2Hotfix3/blob/master/VFPOLEDBSetup.msi
hoặc tải thẳng từ trang của Microsoft: www.microsoft.com/en-us/download/details.aspx?id=32602
– Cài xong thì đăng ký nó: nhớ chạy CMD với quyền Administrator.
regsvr32 /s "C:Program Files (x86)Common Filessystemole dbvfpoledb.dll
– Dùng ADODB kết nối lấy dữ liệu thôi.
Sub getDataFoxpro()
Dim sConnectString, oRS, oConn, sSQL
sConnectString = "Provider=VFPOLEDB;Data Source=C:Temp2021ACT.dbf;"
Set oConn = CreateObject("ADODB.Connection")
oConn.ConnectionString = sConnectString
oConn.ConnectionTimeout = 30
oConn.Open
sSQL = "select * from CT"
Set oRS = oConn.Execute(sSQL)
If oRS.EOF Then
oRS.Close
oConn.Close
Set oRS = Nothing
Set oConn = Nothing
End If
Do While Not oRS.EOF
Debug.Print oRS.Fields("ong_ba").Value & " - " & _
oRS.Fields("dia_chi").Value & vbCrLf
oRS.MoveNext
Loop
oRS.Close
oConn.Close
Set oRS = Nothing
Set oConn = Nothing
End Sub
– Cài xong thì đăng ký nó: nhớ chạy CMD với quyền Administrator.
Tôi thử trên office 64 bít ko sử dụng được
Cái Provider cho Visual Foxpro (vfpoledb.dll) đã lâu lắm rồi, không có hỗ trợ cho Office 64 bit nhe. Còn không muốn phụ thuộc Office thì cứ Python mà đọc thôi, nó có quá trời thư viện hỗ trợ đọc DBF.
có 1 vài cái mà tôi quan tâm Foxpro một chút đó là
1/ Hiện tại còn nhiều cty vẫn sử dụng phần mềm kế toán viết trên FoxPro
2/ tôi có quen 1 cty chuyên làm dịch vụ kế toán lớn cũng sử dụng phần mềm kế toán viết trên FoxPro mà hàng năm nếu có vấn đề gì phát sinh họ vẫn bảo trì
3/ mặc dù nó rất cổ nhưng hiện tại đâu đó vẫn còn sử dụng ….
….
Vì vậy tôi quan tâm 1 chút muốn bảo tồn nó nếu cần thiết sau này chuyển qua Tools khác ta có thể lấy dữ liệu trước đó tham khảo vào Excel …. xong tùy xử lý nó ….
….
Tôi mới phát hiện ra1/ không cần thiết cài đặt Driver của FoxPro Hoặc File VFPOLEDBSetup.msi
2/ vẫn sử dụng tốt trên Office 64 bit
3/ chỉ cần VB6 cổ điển cũng viết tốt rồi ….
4/ Code thì tôi copy y trang code bài số 7 thử thôi …. ko phải là ko biết viết mà lười chút … Copy cho nhanh
5/ tại ta chưa biết thực hiện đúng cách …. hay lách nó mà thôi
6/ xem hình trong cài đặt của tôi ko có sự hiển diện của Fox Pro
xem video
E_xNP1TOjhI
[URL='youtu.be/E_xNP1TOjhI']Liên kết: youtu.be/E_xNP1TOjhI
😀 kiểu gì thì cũng phải cần thêm thư viện bên ngoài thôi.
Kỹ năng giải quyết vấn đề hiệu quả
Mô tả Nội dung Đánh giá Tài nguyên KỸ NĂNG GIẢI QUYẾT VẤN ĐỀ HIỆU QUẢHiểu đúng vấn đề là một nửa của giải...
Xem khóa học
Thảo luận quá trời mà chưa đưa file, đây là file xử lý lấy dữ liệu Foxpro chạy trong Excel 64bit đây. (Đính kèm bên dưới)
2154
1. Chạy file (Run as Administrator) để đăng ý cái Driver FoxPro OLED (vfpoledb.dll).
2. Kéo thả file vào file để tiến hành đăng ký cái phiên làm việc trung gian này (viết trên VB6).
3. Mở file Excel , vào màn hình code -> Tool – Reference -> Tìm và bấm chọn thư viện "FoxProDbConnection" ->OK
Muốn lấy dữ liệu nguồn từ Excel bằng câu lệnh truy vấn SQL thì chỉ đơn giản dùng ADODB để kết nối và truy vấn thôi.
2160
chủ đề này lấy File DBF thì tôi ko quan tâm nữa vì thấy bạn hỏi lấy dữ liệu khác thì tôi giới thiệu cho bạn 1 Thư viện hàm miễn phí và hơn thế nữa nếu tôi thích thêm các chuỗi kết nối khác vào mà FireDAC trên Delphi nó hổ trợ là xong thôi
1/ Vào link sau tải tất cả các File đó về
github.com/KieuManh366377/FireMySQL
2/ Copy code sau vào Worksheet
3/ Vào linhk sau tham khảo thêm cách tổng hợp tất cả các Sheet + TableName trong 1 File lên Sheet
http://www.giaiphapexcel.com/diendan/threads/t%E1%BB%95ng-h%E1%BB%A3p-g%E1%BB%99p-nhi%E1%BB%81u-sheet-trong-1-file-%C3%81p-d%E1%BB%A5ng-cho-excel-access-sqlite.159404/
4/ Lấy dữ liệu Ms Server cách sử dụng tương tự
5/ nếu Rảnh tôi sẻ thêm CSDL FoxPro vào nữa … chức năng tương tự như trên
….
….
Nếu bạn đang sử dụng Office 365 thì mấy hàm công thức Mảng ko thể xóa được của bất cứ ai nên từng bước bỏ đi vì nó nặng và ì ạch lắm
VD: hãy thử lấy 10 Sheet mỗi Sheet có vùng dữ liệu 1048000 dòng x 50 cột là nó chết đơ và thoát ngay lập tức … ko tin thử xem
Xem video cách sử dụng Hàm
1/ nhấn nút chọn File Excel – Access – SQLtie
2/ nhấn ComboBox1 chọn Sheetname Or TableName
3/ Tùy chỉnh SQL và Tiêu đề …
CKmtYfmUtCw
[URL='youtu.be/CKmtYfmUtCw']Liên kết: youtu.be/CKmtYfmUtCw