Copy dữ liệu từ excel sang foxpro theo cấu trúc (1 người xem)

Liên hệ QC

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

diemdiem

Thành viên hoạt động
Tham gia
23/11/10
Bài viết
149
Được thích
7
Hiện tại em có 1 file fox tên là "thisinh" theo 1 cấu trúc có sẵn.
Em có 1 file xls với đầy đủ dữ liệu
Em xin hỏi các anh/chị cách làm thế nào để copy dữ liệu từ xls sang fro mà vẫn đúng dữ liệu.
Nếu được các anh chị có thể làm giúp em với
Trân trọng!
 

File đính kèm

Hiện tại em có 1 file fox tên là "thisinh" theo 1 cấu trúc có sẵn.
Em có 1 file xls với đầy đủ dữ liệu
Em xin hỏi các anh/chị cách làm thế nào để copy dữ liệu từ xls sang fro mà vẫn đúng dữ liệu.
Nếu được các anh chị có thể làm giúp em với
Trân trọng!
Tôi đã từng làm việc này, viết code để appen từ ex vào fox. Nhưng không hiểu sao gán code vào file của bạn thì nó chưa chịu chạy và báo lỗi ODBC mà tôi chưa biết sửa.
Nhờ các anh chhị giúp sửa.
Xin cám ơn.
PHP:
Dim cnEx As ADODB.Connection
Dim recEx As ADODB.Recordset
Dim cnFox As New ADODB.Connection
Dim recFox As New ADODB.Recordset
Dim wbName$, foxName$, myPath$, shName$
Dim i As Long
Sub ConvertExToFox()
On Error GoTo Loi
'Khai bao ten file
wbName = ThisWorkbook.FullName
myPath = ThisWorkbook.Path
shName = "LUUDIEM"
foxName = "THISINH"
foxName = myPath & "\Data" & "\" & foxName
KetNoiEx
cnEx.Open
recEx.Open "select * from [" & shName & "$]", cnEx, adOpenKeyset, adLockOptimistic
KetNoiFox
cnFox.Open
'xoa toan bo dbf con appen thi bo dong Execute sau
cnFox.Execute "delete from " & foxName
recFox.Open "select * from " & foxName, cnFox, adOpenKeyset, adLockOptimistic
While Not recEx.EOF
  'appen
  recFox.AddNew
  For i = 0 To recEx.Fields.Count - 1
    recFox(recEx(i).Name) = recEx(i)
  Next i
  recFox.Update
  recEx.MoveNext
Wend
BoKetNoiFox
BoKetNoiEx
Loi:
MsgBox Err.Description
End Sub
Sub KetNoiEx()
Set cnEx = New ADODB.Connection
Set recEx = New ADODB.Recordset
cnEx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & wbName & ";Persist Security Info=False; Extended Properties=Excel 8.0;"
End Sub
Sub BoKetNoiEx()
recEx.Close
Set recEx = Nothing
cnEx.Close
Set cnEx = Nothing
BoKetNoiFox
End Sub
Sub KetNoiFox()
Set cnFox = New ADODB.Connection
cnFox.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=" & myPath & "\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
Set recFox = New ADODB.Recordset
recFox.CursorLocation = adUseClient
End Sub
Sub BoKetNoiFox()
recFox.Close
Set recFox = Nothing
cnFox.Close
Set cnFox = Nothing
End Sub
 

File đính kèm

excel 2 foxpro

Hiện tại em có 1 file fox tên là "thisinh" theo 1 cấu trúc có sẵn.
Em có 1 file xls với đầy đủ dữ liệu
Em xin hỏi các anh/chị cách làm thế nào để copy dữ liệu từ xls sang fro mà vẫn đúng dữ liệu.
Nếu được các anh chị có thể làm giúp em với
Trân trọng!

tôi nghĩ bạn có dùng foxpro nên tôi viết PRG run trên nền fox xem có dùng được không
 

File đính kèm

tôi nghĩ bạn có dùng foxpro nên tôi viết PRG run trên nền fox xem có dùng được không
Cám ơn rất nhiều, dùng code này đơn giản gọn nhẹ.
Tôi đang dùng PM chạy trên fox nên có file này quá tiện để import danh mục.
Đang thử vận dụng file mà có relation. (.dbc)
PHP:
SET DATE DMY 
SET TALK OFF 
SET SAFETY OFF 
=MESSAGEBOX([CHON TAP TIN DBF CUA FOXPRO ],64,[CHU Y])
mfox=GETFILE([dbf])
USE &mfox
**ZAP 
=MESSAGEBOX([CHON TAP TIN EXCEL CAN CAP NHAT VAO DBF ],64,[CHU Y])
mexcel=GETFILE([xls])
APPEND FROM &mexcel TYPE XLS 
**GO TOP 
**DELETE 
**PACK 
GO TOP 
=MESSAGEBOX([DA CAP NHAT DATABASE TU EXCEL SANG FOXPRO XONG ....],64,[CHU Y])
***BROWSE 
CLOSE TABLES
Đã thử với dbf có quan hệ rồi, nhưng khi appe nếu trùng mã sẽ báo lỗi. Cái này tôi tự khắc phục.
Nhờ bạn thêm biến tên và path của file Ex và dbf vào giúp luôn. Chưa biết cách đặt biến trong .prg
Cám ơn.
 
Lần chỉnh sửa cuối:
Cám ơn rất nhiều, dùng code này đơn giản gọn nhẹ.
Tôi đang dùng PM chạy trên fox nên có file này quá tiện để import danh mục.
Đang thử vận dụng file mà có relation. (.dbc)
PHP:
SET DATE DMY 
SET TALK OFF 
SET SAFETY OFF 
=MESSAGEBOX([CHON TAP TIN DBF CUA FOXPRO ],64,[CHU Y])
mfox=GETFILE([dbf])
USE &mfox
**ZAP 
=MESSAGEBOX([CHON TAP TIN EXCEL CAN CAP NHAT VAO DBF ],64,[CHU Y])
mexcel=GETFILE([xls])
APPEND FROM &mexcel TYPE XLS 
**GO TOP 
**DELETE 
**PACK 
GO TOP 
=MESSAGEBOX([DA CAP NHAT DATABASE TU EXCEL SANG FOXPRO XONG ....],64,[CHU Y])
***BROWSE 
CLOSE TABLES
Đã thử với dbf có quan hệ rồi, nhưng khi appe nếu trùng mã sẽ báo lỗi. Cái này tôi tự khắc phục.
Nhờ bạn thêm biến tên và path của file Ex và dbf vào giúp luôn. Chưa biết cách đặt biến trong .prg
Cám ơn.
nghĩa là bạn muốn set nhất định tên file excel,dbf và đường dẫn phải không? nếu đúng thì như thí dụ dưới đây:

mfox=[drive:\duong\dan\den\taptin.dbf]
mexcel=[drive:\duong\dan\den\taptin.xls]
 
Em chưa hiểu lắm, anh có thể hướng dẫn em kỹ hơn chút xíu

phải nhớ tập tin PRG nằm ờ thư mục nào, thí dụ tập tin ex2fox.prg ở thư mục d:\chuongtrinh
gọi PM foxpro lên, tại khung cửa lệnh của FOX gõ
cd d:\chuongtrinh
do ex2fox
sau đó làm theo hướng dẫn trong chương trình
 
em gà mờ bác nào hướng dẫn em cụ thể cách coppy dữ liệu từ xcel sang foxpro với em đang gặp vấn đề lớn
 
Web KT

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

Back
Top Bottom