Query đến 1 Define Name không được

Liên hệ QC

kumori

Thành viên mới
Tham gia
14/10/15
Bài viết
20
Được thích
1
Chào mọi người

Em có hai file như sau:
- 1 file UserInformation.xlsx chứa dữ liệu thông tin của user. File này em định nghĩa một name động là UserInformation sẽ thay đổi thao độ dài của dữ liệu

- 1 file RunThis.xlsm có hàm kết nối với file UserInformation.xlsx để query thông tin

Theo như tài liệu thì khi query đến Name động thì cú pháp như sau
Select * FROM UserInformation
Tuy nhiên em đang không hiểu sao khi chạy toàn báo không tìm thấy object đấy

Mọi người xem hộ em xem có sai ở chỗ nào không
Em cảm ơn
 

File đính kèm

  • Test.zip
    30.4 KB · Đọc: 14
Chào mọi người

Em có hai file như sau:
- 1 file UserInformation.xlsx chứa dữ liệu thông tin của user. File này em định nghĩa một name động là UserInformation sẽ thay đổi thao độ dài của dữ liệu

- 1 file RunThis.xlsm có hàm kết nối với file UserInformation.xlsx để query thông tin

Theo như tài liệu thì khi query đến Name động thì cú pháp như sau
Select * FROM UserInformation
Tuy nhiên em đang không hiểu sao khi chạy toàn báo không tìm thấy object đấy

Mọi người xem hộ em xem có sai ở chỗ nào không
Em cảm ơn
Báo cho bạn tin buồn là ADO không truy vấn được với name động
 
Lần chỉnh sửa cuối:
Bạn thử 1 name bình thường là 1 vùng mà không phải name động rồi so sánh giữa name động và name thường đó xem nhé.

À em hiểu rồi, dùng name động thì ở cột value trong bảng định nghĩa name nó không có.
Cho em hỏi thêm một chút. Mục đích của em là để tối ưu hóa khi dữ liệu lên tới vài ngàn dòng
Tránh trường hợp khi select * from [Sheet1$] thì sẽ phải quét toàn bộ các ô của sheet1 để xử lý

Cách hiểu của em ở dòng màu đỏ như vậy có đúng không, nếu đúng có cách nào để tối ưu hơn ngoài đặt name động hay không
 
À em hiểu rồi, dùng name động thì ở cột value trong bảng định nghĩa name nó không có.
Cho em hỏi thêm một chút. Mục đích của em là để tối ưu hóa khi dữ liệu lên tới vài ngàn dòng
Tránh trường hợp khi select * from [Sheet1$] thì sẽ phải quét toàn bộ các ô của sheet1 để xử lý

Cách hiểu của em ở dòng màu đỏ như vậy có đúng không, nếu đúng có cách nào để tối ưu hơn ngoài đặt name động hay không
Cũng tùy vào ý định và cấu trúc CSDL nữa bạn à.
 
Không cần name động mà vẫn làm động được. Nói chung không nên dùng Name động nhiều trong công thức sẽ làm chậm tốc độ xử lý của Excel.

DongCuoi = ...Range(...).End(xlUp).Row
VungDong = "[Sheet1$A1:D" & DongCuoi & "]"
Sql_Dong = "Select * from " & VungDong & " where ..."
 
Đôi khi ta không cần quan tâm đến việc xác định dòng cuối cùng của bảng tính vì ADO sẽ tự động hiểu đến dòng cuối cùng trong bảng dữ liệu mà không cần khai báo.

@kumori: Bạn lưu ý là với cách anh Tuân thì sẽ lấy đến dòng cuối cùng khi file CSDL đang mở.
 
Lần chỉnh sửa cuối:
Đôi khi ta không cần quan tâm đến việc xác định dòng cuối cùng của bảng tính vì ADO sẽ tự động hiểu đến dòng cuối cùng trong bảng dữ liệu mà không cần khai báo.

@kumori: Bạn lưu ý là với cách anh Tuân thì sẽ lấy đến dòng cuối cùng khi file CSDL đang mở.

Vậy tức là với csdl của em trong file Userinformation thì ADO sẽ tự động xác định dòng cuối luôn mà không cần phải khai báo như anh Tuân phải không anh?
//Em suýt quên vụ phải mở file thì mới định nghĩa được dòng cuối
 
Xin chào mọi người. Tiện tiêu đề này các bạn có thể cho mình hỏi ADO có thể truy vấn được bao nhiêu dòng và cột trong 1 bảng excel.
 
Web KT

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

Back
Top Bottom