Nhờ xem giúp lỗi macro import Visual Fox (dbf)

Liên hệ QC

thang24

Thành viên chính thức
Tham gia
21/8/07
Bài viết
97
Được thích
80
Nghề nghiệp
tc
Mình có file của cadfi gửi về việc lấy dữ liệu của file dbf vào file E, tuy nhiên khi chạy voi 5file dbf tro len thi thấy đoạn code báo lỗi, mình tìm mãi mà không hiểu, nhờ các bạn chỉ giúp. Tiện thể nếu tích hợp được thêm:

Lấy dữ liệu các file có cùng tên đuoi từ nhiều thư mục (trong ổ mạng chung) vào 1 foder trên máy riêng.

Rất cảm ơn!
 

File đính kèm

Mình có file của cadfi gửi về việc lấy dữ liệu của file dbf vào file E, tuy nhiên khi chạy voi 5file dbf tro len thi thấy đoạn code báo lỗi, mình tìm mãi mà không hiểu, nhờ các bạn chỉ giúp. Tiện thể nếu tích hợp được thêm:

Lấy dữ liệu các file có cùng tên đuoi từ nhiều thư mục (trong ổ mạng chung) vào 1 foder trên máy riêng.

Rất cảm ơn!
Cũng vấn đề này liệu dùng ADO có OK không.
Bác nào đã từng làm về lấy dữ liệu từ dbf vào Excel xin cho 1 file hay code cụ thể với. Gán vào file của bạn Thang24.
Mình có google về ADO và ODBC mà chả hiểu cái gì, nó cứ bảo rằng ODBC driver not support.
Cám ơn rất nhiều.
 
Upvote 0
Trong file của cadfi cũng có code rồi đó thu nghi, tuy nhiên mình cũng chả hiểu j về nó cả.
file đó mình có dữ liệu dbf các bạn copy thành 6-8 bản rồi chạy, lập tức báo lỗi, 1 thì ok! hic
 
Upvote 0
báo nào có kiến thức về ADO xin nhờ giúp đỡ!
 
Upvote 0
:( híc bác ptm hay cadafi .... giúp mình làm việc với file này với!
 
Upvote 0
:( híc bác ptm hay cadafi .... giúp mình làm việc với file này với!
Các Bác chỉ cần hd giúp mình 1 câu kết nối file dbf và 1 câu SQL. Mình sẽ nghiên cứu thử.
Mình tìm thấy được cái này lấy dữ liệu từ dbf - > ACC, nhưng mà sang excel thì không biết cách.
PHP:
Private Sub cmdImport_Click()
On Error GoTo ErrHandler
   
   Dim oFSystem As Object
   Dim oFolder As Object
   Dim oFile As Object
   Dim sFolderPath As String
   Dim SQL As String
   Dim i As Integer
    
   sFolderPath = "C:\123\"
   
   Set oFSystem = CreateObject("Scripting.FileSystemObject")
   Set oFolder = oFSystem.GetFolder(sFolderPath)
  
   For Each oFile In oFolder.files
     If Right(oFile.Name, 4) = ".dbf" Then
       SQL = "Insert into [tblFORMGUIDE]" _
           & " Select """ & Left(oFile.Name, 7) & """ as [Key],*" _
           & " from " & Left(oFile.Name, Len(oFile.Name) - 4) _
           & " IN """ & sFolderPath & """ ""dBASE 5.0;"""
       
       DoCmd.SetWarnings False
       DoCmd.RunSQL SQL
       DoCmd.SetWarnings True
       i = i + 1
     End If
   Next
   
   MsgBox i & " dbf files were imported."
   Exit Sub
   
ErrHandler:
   MsgBox Err.Description
End Sub
 
Upvote 0
Hic ko ai jup anh em minh roi bac ah!
 
Upvote 0
Xin nhờ anh chị giúp đỡ!
 
Upvote 0
cảm ơn thunghi, nhưng mình dùng chương trình viết bằng ngôn ngữ fox, và chương trinh đã tạo ra 50 file dbf có cấu trúc giống hệt nhau, h mình muốn import tất cả vào excel để khai thác dữ liệu. nhưng thật khó, file mẫu chỉ có thể giải quyết được với 5 file dbf mà không thể nhiều hơn, thunghi có thể giúp không
 
Upvote 0
Thang24 dùng cái này nhé
mỗi lần muốn import từ Dbf sang exel thì copy cái file này vào nơi chứa file dbf,
mở file này lên sau đó nhấn browse ---->chọn file Dbf cần import ---> Irgnore
vậy là ok, nhưng mỗi lần chỉ làm được có 1 file hà,
Ghi chú: nếu số record của Thang24 nhiều hơn 16000 dòng thì code này cũng tự động ngắt file cho mình luôn, vậy là ok khỏi phải viết thêm câu lệnh ngắt record,
nếu muốn import 1 lần 50 file sang excel thì Thang24 cho mình thông tin tên file đi, quy luật đặt tên file, ví dụ: dd_mm_yy, hoặc chinhanh01, chinhanh02... để mình viết cho, chỉ sửa lại vòng lặp là được, nhưng nếu không gấp thì ngày mai hoặc mốt sẽ có vì mình chưa có thời gian.
vậy được không? thiệt ra thì mình không phải giỏi cái này lắm, nhưng nếu anh cadafi làm rồi và có cách hay thì cho mình học hỏi với
Mà hình như mình hiểu chưa đúng ý Thang24, bạn muốn chuyển 50 file dbf sang 50 file excel hay 50 file dbf sang 1 file excel? nếu chuyển vào 1 file excel thì bạn dùng lệnh APPEND from ....(đường dẫn file), sau đó thực hiện mọi chuyện bình thường
Nếu không đúng ý bạn thì bạn nói rõ hơn và cho thông tin càng cụ thể càng tốt
Thân
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Rất cảm ơn phuc, ở đây ý mình muốn là dồn 50 file dbf có cấu trúc giống hệt nhau vào 1 file E xel để tiện khai thác, vì phần mềm kế toán mình cho dữ liệu BCD, KQKD... dưới dạng file dbf.
về dữ liệu bạn có thể tải file đính kèm ngay ở trang 1, bạn copy luôn thành 50 hay 100 cái file dbf đều ok.
Các của bạn hay, nhưng ko tiện = của anh Cadafi, file của anh Ca cũng import được 1-5 file dbf cùng cấu trúc, nhưng nếu hoàn thiện thành 50-10 thì rất hoàn hỏa, phúc thử nghiên cứu giúp thang24 nhé vì lĩnh vực này mình không hiểu một tý gì.

Rất mong anh chị nào biết chỉ giúp để mình có thể sử dụng được tiện ích này.
 
Upvote 0
Rất cảm ơn phuc, ở đây ý mình muốn là dồn 50 file dbf có cấu trúc giống hệt nhau vào 1 file E xel để tiện khai thác, vì phần mềm kế toán mình cho dữ liệu BCD, KQKD... dưới dạng file dbf.
về dữ liệu bạn có thể tải file đính kèm ngay ở trang 1, bạn copy luôn thành 50 hay 100 cái file dbf đều ok.
Các của bạn hay, nhưng ko tiện = của anh Cadafi, file của anh Ca cũng import được 1-5 file dbf cùng cấu trúc, nhưng nếu hoàn thiện thành 50-10 thì rất hoàn hỏa, phúc thử nghiên cứu giúp thang24 nhé vì lĩnh vực này mình không hiểu một tý gì.

Rất mong anh chị nào biết chỉ giúp để mình có thể sử dụng được tiện ích này.

Đây, tối qua tranh thủ về nhà viết cho Thang24 đây
Trường hợp 1: copy 50 file dbf (hoặc nhiều hơn) có cấu trúc giống nhau ra 50 file excel thì sử dụng Program1
Trường hợp: copy 50 file dbfc(hoặc nhiều hơn) có cấu trúc giống nhau ra 1 file excel thì sử dụng Program2
Ghi chú: aF và chữ filetong là do mình đặt, bạn có thể sửa lại tên bạn muốn
cd [đường dẫn file của bạn]
sau đó Run là được (nhấn dấu chấm than đỏ đỏ)
Ok hén
Thân
 

File đính kèm

Upvote 0
Quá hay, cảm ơn phuc nhiều lắm, nhưng phúc có thể tích hợp cho mình thêm 1 cột ở cuối hiện tên file không? để tiện cho mình khi lọc dữ liệu theo từng công ty, vì ở đây tất cả ở đây đã liệt kê đầy đủ chỉ tiêu rồi, nhờ phuc them 1 vài câu lệnh để lấy thêm tên file chèn ở cột cuối cùng dữ liệu được ko??

Theo mình phúc thêm tên file ở cột đầu tiên thì tốt nhất, vì cấu trúc mỗi báo cáo khác nhau, như thế tiện để khai thác dữ liệu hơn!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
để tối về Phúc coi đã, trước giờ chưa có làm cái chuyện này, trong giờ làm việc Phúc không có thời gian, bị dí nhiều việc quá, hic
Nhưng mà mỗi lần yêu cầu thì thang24 chú ý nêu hết yêu cầu của mình muốn ra nhé, càng cụ thể càng tốt, tiện cho người thực hiện, bạn suy nghĩ từ đây đến chiều coi còn bổ sung thông tin gì nữa không
 
Lần chỉnh sửa cuối:
Upvote 0
Để thuận tiện cho việc thao tác nhờ Phúc:

+ Chuyển file program2.prg và program1.prg thành file chạy sao cho khi kích vào nó chỉ đường dẫn tới thư mục cần chọn, thay vì cố định thư mục sẵn (thư mục chứa file dbf thay vì D:\test).
+ Độ rộng cột dữ liệu khi sang ẽxcel có thể auto được ko? nếu dược thì rất hay
+ Buộc lòng phải có thêm cột tên file khi ra filetonghop.xls vì như thế sẽ tiện cho công việc lọc, khai thác dữ liệu.

Công việc mình cần tổng hợp rất nhiều nên nếu làm được việc này thì việc sẽ giảm 50% thời gian. Mình đã viết một chương trình gom tất cả các file dbf của các thư mục khác nhau về một thư mục rồi nếu sử dụng chương trình của Phúc thì quá tuyệt vời.

Trân thành!
 
Lần chỉnh sửa cuối:
Upvote 0
Để thuận tiện cho việc thao tác nhờ Phúc:

+ Chuyển file program2.prg và program1.prg thành file chạy sao cho khi kích vào nó chỉ đường dẫn tới thư mục cần chọn, thay vì cố định thư mục sẵn (thư mục chứa file dbf thay vì D:\test).
+ Độ rộng cột dữ liệu khi sang ẽxcel có thể auto được ko? nếu dược thì rất hay
+ Buộc lòng phải có thêm cột tên file khi ra filetonghop.xls vì như thế sẽ tiện cho công việc lọc, khai thác dữ liệu.

Công việc mình cần tổng hợp rất nhiều nên nếu làm được việc này thì việc sẽ giảm 50% thời gian. Mình đã viết một chương trình gom tất cả các file dbf của các thư mục khác nhau về một thư mục rồi nếu sử dụng chương trình của Phúc thì quá tuyệt vời.

Trân thành!
Trời, giảm được 50% thời gian làm việc hả??? sướng thế, vậy thời gian còn lại làm gì đây? dẫn Phúc đi cafe uống sinh tố đi nhé%#^#$%#^#$%#^#$, người ta là con gái mừ (nên hỏng có uống cafe), hihi
Hôm qua Phúc có việc lu bu nên không vào xem yêu cầu của Thang24, xin lỗi nhé
Về yêu cầu của Thang24, Phúc thực hiện được việc là có thêm cột tenfile ở cuối table, nếu bạn muốn di chuyển cột thì vào modify structure nhé, Phúc cho số ký tự tối đa là 50, nếu tên file của Thang24 dài hơn thì chỉnh lại ở chỗ c(50) đó. Đáp ứng được yêu cầu chính trong 3 yêu cầu nha,
Phần còn lại thì về nghiên cứu tiếp, vì Phúc không sử dụng chương trình này, do thích nên nghiên cứu thôi, nên phải "mò", có cái yêu cầu này mà "mò" cả đêm, mắt thụt vào rồi, hic (vì vậy cần phải có sinh tố bồi bổ)/-*+//-*+//-*+/
2 yêu cầu còn lại thì đơn giản thôi, từ từ đi nhé, với lại code đã viết được tới đây rồi thì thời gian để phải thực hiện tay 2 việc kia chắc cũng không tốn nhiều thời gian của Thang24 hén, vì chưa mời uống sinh tố nên phải...câu (hì hì)
Nói đùa thôi, khi nào có thời gian Phúc hoàn thiện lại cho nghen.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Híc, girl mà pro quá, làm mình hổ thẹn thật.
ok vụ này nhất định mình phải mời Phúc đi uống sinh tố.
Phúc nhắn tin cho mình nhé: nick yahoo: soitocxoan

Một lần nữa cảm ơn bạn!
 
Upvote 0
Spam 1 chút, P có dạy Fox thì cho anh học với, hôm qua giờ mình cũng vất vả với cái vụ gán tên này, mình modi stru filetong và thêm trường TenFile nhưng mà nó gán luôn tên filetong.
Tiện cho hỏi, có lệnh nào như là nếu tên file <> "xyz" thì do ...
Cám ơn P nhiều. Nếu OK sẽ mời P đi ăn và ... drink some...
 
Upvote 0
Web KT

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

Back
Top Bottom