Giúp đỡ báo lỗi Method 'CopyFromRecordset' of object 'Range' failed

Liên hệ QC

transongngocquan

Thành viên hoạt động
Tham gia
10/5/07
Bài viết
180
Được thích
99
Tôi có 1 cột bên access có kiểu dữ liệu là Memo
khi tôi lấy dữ liệu quan Excel:
Mã:
wsTD.Range("B9").CopyFromRecordset DSTD
thì với dữ liệu Text lớn, lớn hơn 256 ký tự thì bị báo lỗi như sau:
Mã:
Run-time error '-2147467259 (80004005)':
Method 'CopyFromRecordset' of object 'Range' failed

Tôi xóa bớt các các ký tự đi, số lượng nhở hơn 256 ký tự thì được.
Như vậy thì dữ liệu của tôi sẽ bị mất đi.

Có cách nào khắc phục xin các cao thủ chỉ giúp?
Cám ơn nhiều !!!
 
Chỉnh sửa lần cuối bởi điều hành viên:
To: Transongngocquan,
Nếu như vậy bạn không dùng phương thức
Mã:
CopyFromRecordset
Bạn phải quét qua từng record rồi xuất ra Excel, dĩ nhiên khi xuất ra Excel như vầy bạn phải xử lý trường Memo đó.

Lê Văn Duyệt
 
Excel trở về trước chỉ cho phép ttối đa 255 ký tự trong một CELL, trong chế độ người dùng có thể nhập nhiều hơn nhưng khi copy sao lưu hoặc trong lập trình sẽ không an toàn vì sẽ bị cắt bớt chỉ còn 255 ký tự.
Với Excel 2007 trở đi thì số ký tự trong một CELL là khoảng hơn 32.000 ký tự.
 
Như vậy giải pháp hay nhất là phải chuyển qua Excel 2007 dùng thôi, chứ xử lý từng record thì tốc độ sẽ chậm rất nhiều
 
To: transongngocquan,
Như vậy giải pháp hay nhất là phải chuyển qua Excel 2007 dùng thôi, chứ xử lý từng record thì tốc độ sẽ chậm rất nhiều
Nói về tốc độ thì còn phụ thuộc vào nhiều yếu tố. Ví dụ: khi lấy dữ liệu ra, bạn phải chú ý đến các câu lệnh truy vấn.
Ví dụ:
Mã:
SELECT * FROM TB_MAIN;
Thì sẽ làm cho chương trình chậm hơn. Khi truy vấn chúng ta nên cắt nhỏ thông tin ra.
Như trường hợp truy vấn phân trang, nó sẽ giúp chương trình của bạn thực hiện nhanh hơn.
Nhưng theo tôi nghĩ, đối với công ty vừa và nhỏ thì việc xử lý này là chấp nhận được.

Lê Văn Duyệt
 
Web KT

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

Back
Top Bottom