Lấy dữ liệu Foxpro

Liên hệ QC

viethung78

Thành viên chính thức
Tham gia
3/6/16
Bài viết
72
Được thích
45
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!
 

File đính kèm

  • 2021A.zip
    52.9 KB · Đọc: 18
  • CT (dữ liệu trong file CT.dbf).xls
    69 KB · Đọc: 14
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
 

File đính kèm

  • 1645173352932.png
    1645173352932.png
    131.4 KB · Đọc: 36
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
Convert về dạng foxplus là convert thế nào hả bạn?
 
đoán 1 tí thôi nhé ... ko chắc chắn lắm
Cài cái Driver của nó xong dùng ADODB mà lấy ... kiểu như SQLite muốn sử dụng nó cũng thế
1645235991677.png
Delphi họ vẫn viết đấy ... có điều đồ cổ quá ... ko đáng mò lại code ngày xưa
 
Lần chỉnh sửa cuối:
mò chút cũng ra à

1645245963866.png
 
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!
- 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): https://github.com/VFPX/VFP9SP2Hotfix3/blob/master/VFPOLEDBSetup.msi
hoặc tải thẳng từ trang của Microsoft: https://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 Files\system\ole db\vfpoledb.dll
- Dùng ADODB kết nối lấy dữ liệu thôi.

Mã:
Sub getDataFoxpro()

    Dim sConnectString, oRS, oConn, sSQL
    sConnectString = "Provider=VFPOLEDB;Data Source=C:\Temp\2021A\CT.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
 
Lần chỉnh sửa cuối:
- 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): https://github.com/VFPX/VFP9SP2Hotfix3/blob/master/VFPOLEDBSetup.msi
hoặc tải thẳng từ trang của Microsoft: https://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 Files\system\ole db\vfpoledb.dll
- Dùng ADODB kết nối lấy dữ liệu thôi.

Mã:
Sub getDataFoxpro()

    Dim sConnectString, oRS, oConn, sSQL
    sConnectString = "Provider=VFPOLEDB;Data Source=C:\Temp\2021A\CT.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
Tôi thử trên office 64 bít ko sử dụng được
 
Mình sẽ cố gắng thử test các giải pháp cộng đồng trợ giúp. Có thể được có theerr không, cảm ơn giúp đỡ của mọi người.
 
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á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

1645334671780.png

xem video

Liên kết: https://youtu.be/E_xNP1TOjhI
 
Lần chỉnh sửa cuối:
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

:D kiểu gì thì cũng phải cần thêm thư viện bên ngoài thôi.
 
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

View attachment 272318

xem video

Liên kết: https://youtu.be/E_xNP1TOjhI


CẢM ƠN ANH, ANH ĐÃ LÀM THẾ NÀO VẬY?
 
Cách của các anh hay quá ạ ! Em Vân toàn phải dùng phân mềm chuyển từ File dbf sang excel thôi ạ.
 
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!

Khi bạn muốn kết nối CSDL Foxpro vào Excel thì làm theo hướng dẫn của tôi dưới đây. Bạn hãy dùng DBKEY để tạo kết nối đến folder có các file DBF, sau đó dùng hàm BS_SQL để truy vấn dữ liệu theo câu lệnh SQL. Chỉ thế là xong. Toàn bộ quá trình làm không cần phải lập trình. Nếu bạn tìm hiểu kỹ hơn hàm BS_SQL thì còn làm rất nhiều báo cáo phức tạp và tốc độ nhanh.

 
Lần chỉnh sửa cuối:
Khi bạn muốn kết nối CSDL Foxpro vào Excel thì làm theo hướng dẫn của tôi dưới đây. Bạn hãy dùng DBKEY để tạo kết nối đến folder có các file DBF, sau đó dùng hàm BS_SQL để truy vấn dữ liệu theo câu lệnh SQL. Chỉ thế là xong. Toàn bộ quá trình làm không cần phải lập trình. Nếu bạn tìm hiểu kỹ hơn hàm BS_SQL thì còn làm rất nhiều báo cáo phức tạp và tốc độ nhanh.

Mạnh đoán 1 chút nếu sai thì bỏ qua he :D
Hình như chỉ chạy trên Office 32 bít
 
Mạnh đoán 1 chút nếu sai thì bỏ qua he :D
Hình như chỉ chạy trên Office 32 bít

Đúng rồi. Vì Foxpro ODBC Driver hay Microsoft Visual FoxPro OLE DB Provider hiện nay chỉ hỗ trợ 32-bit nên Office và các add-in nhúng theo buộc phải là 32-bit mới chạy được.
 
Đúng rồi. Vì Foxpro ODBC Driver hay Microsoft Visual FoxPro OLE DB Provider hiện nay chỉ hỗ trợ 32-bit nên Office và các add-in nhúng theo buộc phải là 32-bit mới chạy được.
Vậy đoán thêm tí nữa
Hàm trong Atools là hàm mở rộng dùng ADODB lấy dữ liệu ... muốn lấy CSDL nào thì thêm cái Driver của nó + cái chuỗi kết nối là lấy khi SQLbuilder tạo và lưu nó ở đâu đó ...

trong trường hợp này FoxPro nó là 32 bít nên ko xử lý được là chính xác
....
Mạnh xử lý bài số 11 = ok kèm Video chạy tốt cho Excel 64 bít
 
Web KT
Back
Top Bottom