Bài tập về ADO căn bản.

Liên hệ QC
Phần group bạn group có 1 trường đó là TEN, trong khi đó cần Group là STT, TEN, GhiChu. Vậy phải sửa lại là Group By STT, TEN, GhiChu
Lưu ý dữ liệu cột STT và ghi chú khi group có đúng yêu cầu hay không. Vì giống nhau nó mới group lại.

Cám ơn Anh rất nhiều
 
Em thực hiện copy từ file Book1 nhưng bị các lỗi sau như file đính kèm ạ:
- Cột 1: số liệu thập phân bị mất và thay bằng số nguyên bị nhân lên 10^x lần.
- Cột 2: số liệu copy ra không phải dạng số (đặc biệt các số 0 bị thành "-" dẫn đến nếu ko xử lý tiếp kết quả copy này mà dùng tính toán ngay sẽ gây lỗi).
- Cột 3: vẫn cùng dạng lệnh vba tương tự như vậy, cột nguồn cùng định dạng với nguồn của cột 2 nhưng lại ra kết quả dạng số (khác với kết quả ở cột 2)!!
Xin giúp đỡ giải đáp tại sao và chỉnh sửa để lệnh copy đúng số liệu ạ, xin cảm ơn.
 

File đính kèm

  • Loi copy.rar
    21.4 KB · Đọc: 15
Lần chỉnh sửa cuối:
Có thời kỳ tui quậy ADO diết mà khi ngủ mê tui nghe thấy ai đó nói nhỏ vào tai tui vầy nè ai đó nghe xem có trúng hông nha ...--=0

Nếu dòng đầu trống thì không lấy text chỉ lấy số ...--=0+-+-+-+...còn nữa kỳ sau nói tiếp
 
Lần chỉnh sửa cuối:
Có thời kỳ tui quậy ADO diết mà khi ngủ mê tui nghe thấy ai đó nói nhỏ vào tai tui vầy nè ai đó nghe xem có trúng hông nha ...--=0

Nếu dòng đầu trống thì không lấy text chỉ lấy số ...--=0+-+-+-+...còn nữa kỳ sau nói tiếp

Em tay mơ mới học thôi nên vẫn chưa hiểu ý anh -+*/ Mong kỳ sau của anh để được giải đáp -\\/.
 
Có thời kỳ tui quậy ADO diết mà khi ngủ mê tui nghe thấy ai đó nói nhỏ vào tai tui vầy nè ai đó nghe xem có trúng hông nha ...--=0

Nếu dòng đầu trống thì không lấy text chỉ lấy số ...--=0+-+-+-+...còn nữa kỳ sau nói tiếp
Nếu dữ liệu không chuẩn thì nên khai báo IMEX của nó nhé.
 
Các anh cho em hỏi có thể lấy dữ liệu bằng sql từ sheet thứ 2 trong file excel không ạ
 
Lười thế. Nếu chịu khó đọc bài một chút thì đã biết có được hay không.
Can ban la e khong co thoi gian, Sang 5h30 e phải đi làm rồi, tối 9h30 e mới về đến nhà. Bác biết chỉ giúp e, hoặc cho e link để e xem cho nhanh, e biết cách là dùng name range, nhưng nó bị giới hạn < 20k dòng
 
Can ban la e khong co thoi gian, Sang 5h30 e phải đi làm rồi, tối 9h30 e mới về đến nhà. Bác biết chỉ giúp e, hoặc cho e link để e xem cho nhanh, e biết cách là dùng name range, nhưng nó bị giới hạn < 20k dòng

Dùng Name được tối đa 65536 dòng nhé.
 
Vâng anh Tuân! Nhưng dữ liệu của em là vài trăm ngàn dòng, có cách nào lấy dữ liệu từ sheet thứ 2 trở đi mà k dùng name không a

Nếu dữ liệu > 65k dòng thì em dùng tên sheet làm nguồn. Dòng đầu tiên của sheet phải là dòng tiêu đề. Bây giờ em làm câu lệnh như sau:
SELECT * FROM [TÊN SHEET$]
 
Nếu dữ liệu > 65k dòng thì em dùng tên sheet làm nguồn. Dòng đầu tiên của sheet phải là dòng tiêu đề. Bây giờ em làm câu lệnh như sau:
SELECT * FROM [TÊN SHEET$]
Cảm ơn a.Tuân nhiều ạ (bây giờ em mới đi làm về). em test dòng đâu tiên của sheet không phải là dòng tiêu đề vẫn ok a tuân ạ
 
Mã:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\addin a-tools\excel-for-internet\demo.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";
Nói thật là e mới tìm hiểu về vấn đề nay được vài ngày, trong code trên em hiểu mỗi đoạn Data Source=c:\addin a-tools\excel-for-internet\demo.xlsx, còn những khai báo còn lại em chữa rõ lắm, tuy nhiên em không dám hỏi a về vấn đề này nữa, e sẽ tự tìm hiểu sau. A cho em hỏi thêm vấn đề này thôi: nếu tên field dạng như này: check q'ty, hoăc có chứa dấu cách thì có cách nào để sử dụng 'select check q'ty from[gpe] ' không ạ. Vì với một số trường có tên đặc thù nếu đổi tên field về dạng viết liền không dấu, không dấu cách thì người đọc rất khó hiểu ( ngoài ra còn có tiến hàn nữa ạ) . Thank!
 
Nói thật là e mới tìm hiểu về vấn đề nay được vài ngày, trong code trên em hiểu mỗi đoạn Data Source=c:\addin a-tools\excel-for-internet\demo.xlsx, còn những khai báo còn lại em chữa rõ lắm, tuy nhiên em không dám hỏi a về vấn đề này nữa, e sẽ tự tìm hiểu sau. A cho em hỏi thêm vấn đề này thôi: nếu tên field dạng như này: check q'ty, hoăc có chứa dấu cách thì có cách nào để sử dụng 'select check q'ty from[gpe] ' không ạ. Vì với một số trường có tên đặc thù nếu đổi tên field về dạng viết liền không dấu, không dấu cách thì người đọc rất khó hiểu ( ngoài ra còn có tiến hàn nữa ạ) . Thank!
Nên tránh đặt tên field là những ký tự đặc biệt để tránh rắc rối sau này. Trường hợp của bạn thì nên thêm 2 dấu [] vào nha. VD: select Col1, [Col 2], [check q'ty] from table
 
Nói thật là e mới tìm hiểu về vấn đề nay được vài ngày, trong code trên em hiểu mỗi đoạn Data Source=c:\addin a-tools\excel-for-internet\demo.xlsx, còn những khai báo còn lại em chữa rõ lắm, tuy nhiên em không dám hỏi a về vấn đề này nữa, e sẽ tự tìm hiểu sau. A cho em hỏi thêm vấn đề này thôi: nếu tên field dạng như này: check q'ty, hoăc có chứa dấu cách thì có cách nào để sử dụng 'select check q'ty from[gpe] ' không ạ. Vì với một số trường có tên đặc thù nếu đổi tên field về dạng viết liền không dấu, không dấu cách thì người đọc rất khó hiểu ( ngoài ra còn có tiến hàn nữa ạ) . Thank!

Tên trường coi như một biến, một NAME nên càng ngắn gọn càng dễ dùng, giảm lỗi soạn thảo. Nếu trường hợp buộc phải sử dụng tên cột có dấu hay có ký tự đặc biệt thì khi đưa tên cột (tên trường) vào câu lệnh SQL bạn cho nó vào trong [ TÊN CỘT]. Ví dụ.

SELECT [TÊN CỘT] FORM [TÊN SHEET$] WHERE [TÊN CỘT]='abc'

Bạn muốn học về SQL, ngoài ví dụ thực hành trên đây bạn có thể xem 2 video hướng dẫn ngôn ngữ SQL trong loạt video "Tạo báo cáo động trong Excel" của tôi trên youtube sẽ nhanh nắm bắt hơn nữa.
 
Xin lưu ý thêm là trong cửa sổ VBE chưa hỗ trợ Tiếng Việt có dấu hay Tiếng Hàn như bạn đề cập, nếu muốn truy vấn được thì phải tạo list bên ngoài sheet và nối chuổi nó vào.
 
Tên trường coi như một biến, một NAME nên càng ngắn gọn càng dễ dùng, giảm lỗi soạn thảo. Nếu trường hợp buộc phải sử dụng tên cột có dấu hay có ký tự đặc biệt thì khi đưa tên cột (tên trường) vào câu lệnh SQL bạn cho nó vào trong [ TÊN CỘT]. Ví dụ.

SELECT [TÊN CỘT] FORM [TÊN SHEET$] WHERE [TÊN CỘT]='abc'

Bạn muốn học về SQL, ngoài ví dụ thực hành trên đây bạn có thể xem 2 video hướng dẫn ngôn ngữ SQL trong loạt video "Tạo báo cáo động trong Excel" của tôi trên youtube sẽ nhanh nắm bắt hơn nữa.
Cảm ơn a Tuân nhiều! Em cũng đã biết đến a và xem 1 số video hd của a, e sẽ cố gắng tìm hiểu để tránh đưa ra những câu hỏi ngớ ngẩn
 
Web KT
Back
Top Bottom