Lấy dữ liệu Foxpro

Chia sẻ bởi:hands
★★★★★
Quảng cáo

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 ra

1/ 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ả
Khóa học SprinGO phù hợp

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
★★★★★ 5 ★ 1 👤 2 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm